c/c++中变量的声明和定义深入解析

 更新时间:2013年09月26日 09:02:12   作者:  
“声明”为编译服务,用于类型检查 ;“定义”在运行时会分配空间,不能重复定义,同时具备声明的功能

不管是函数还是变量的声明 ,都是为了告诉编译器我要使用这个变量或者函数了,用于类型检查。在定义 的时候编译器是不会分配任何内存的,

比如下面的函数:

复制代码 代码如下:

void func() {
      int a ;
      int b = 0 ;
      a = 0 ;
}

当函数执行到int a ;的时候,这是一个声明,编译器不会为其分配内存空间 。当执行到a = 0; 这是一个定义,编译器才会为其分配内存空间。因此声明不一定是定义,定义一定就是定义,还可以包含声明。但是下面的这种肯定只是声明:
extern int  a ;

因此:

“声明”为编译服务,用于类型检查 ;
“定义”在运行时会分配空间,不能重复定义,同时具备声明的功能。

相关文章

  • OpenCV实现图像背景虚化效果原理详解

    OpenCV实现图像背景虚化效果原理详解

    相信用过相机的同学都知道虚化特效,这是一种使焦点聚集在拍摄主题上,让背景变得朦胧的效果。本文将详细介绍一些这一效果的实现原理以及代码,需要的可以参考一下
    2022-03-03
  • C++实现日期计算器详细代码示例

    C++实现日期计算器详细代码示例

    这篇文章主要给大家介绍了关于C++实现日期计算器的相关资料,基于C++编写的简单的日期计算器,供大家参考,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • 详解C语言用malloc函数申请二维动态数组的实例

    详解C语言用malloc函数申请二维动态数组的实例

    这篇文章主要介绍了详解C语言用malloc函数申请二维动态数组的实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • 怎样用cmd运行C程序

    怎样用cmd运行C程序

    这篇文章主要介绍了怎样用cmd运行C程序?今天就来和大家分享一下用cmd运行C程序的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • VSCode远程代码开发及DNS隧道端口转发实现远程办公代码

    VSCode远程代码开发及DNS隧道端口转发实现远程办公代码

    这篇文章主要介绍了VSCode远程代码开发及DNS隧道端口转发实现远程办公,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 学好C++必须做到的50条 绝对经典!

    学好C++必须做到的50条 绝对经典!

    学好C++必须做到的50条,绝对经典!想要学好C++的朋友一定要认真阅读本文,更要做到以下50条
    2016-09-09
  • libxml教程(图文详解)

    libxml教程(图文详解)

    本篇文章是对libxm进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 基于Qt实现视频播放器功能

    基于Qt实现视频播放器功能

    本文通过实例代码给大家介绍了基于Qt实现视频播放器功能,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-09-09
  • C语言开发简易版扫雷小游戏

    C语言开发简易版扫雷小游戏

    本文给大家分享的是一个使用C语言开发的命令行下的简易版扫雷小游戏,本身没有什么太多的技术含量,只不过是笔者的处女作,所以还是推荐给大家,希望对大家学习C能够有所帮助。
    2015-12-12
  • C++中::SHCreateDirectoryEx函数使用方法

    C++中::SHCreateDirectoryEx函数使用方法

    ::SHCreateDirectoryEx用于创建多级目录,类似于mkdir -p命令,本文主要介绍了C++中::SHCreateDirectoryEx函数使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03

最新评论