extern作用?

C加嘉 2014-03-16 11:20:05
《C++Primer》第四版
2.3.5 声明和定义
声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。可以通过使用extern关键字声明变量名而不定义它。不定义变量的声明包括对象名,对象类型和对象类型前的关键字extern。

这句话是什么意思?
给个实例!
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
C加嘉 2014-03-16
  • 打赏
  • 举报
回复
lovesmiles: 快滚,别污染了这个贴!
luotuo44 2014-03-16
  • 打赏
  • 举报
回复
要先明白声明和定义一个变量的区别。可以这样去理解:声明一个变量就是告诉编译器,存在这样一个变量。定义一个变量则不仅告诉编译器有这个一个变量,还要求编译器为其分配存储空间。 为什么会有这两个东西呢。这要从使用说起。假如有两个源文件,他们都要使用到一个变量int g_a = 3; 那么初学者的解决办法是把这个变量的定义放到一个头文件里面,然后让两个源文件去包含之。这样,编译器在编译每个源文件时,会为每个变量分配存储空间。这时g_a就会被分配两个不同的存储空间。不用说,这里会出现一个问题:当使用到g_a变量时,究竟是使用哪个存储空间的g_a呢? C语言对于这种问题的解决方案是:声明一个变量不会分配存储空间,定义则会。平时我们使用的int a = 0都是定义。而使用extern则告诉编译器这个是声明。 可以用extern来解决上面提到的那个问题。在一个源文件定义g_a。即int g_a = 3; 在另外一个源文件里面声明g_a。使用extern int g_a;
勤奋的小游侠 2014-03-16
  • 打赏
  • 举报
回复
http://blog.csdn.net/sjxbf/article/details/6310150

仔细看完这个blog。大神。

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧