全局变量名前面的extern
来源:互联网 发布:net是哪里的域名 编辑:程序博客网 时间:2024/05/16 11:15
用两个例子来说明:
#include <stdio.h>extern int i=7;int main(){printf("%d", i);return 0;}
以上代码在VS2013中是成功的,输出7
用GCC也是成功的,输出7;但会产生警告: warning: 'i' initialized and declared 'extern'
其实不加extern修饰,直接int i = 7,和加上external修饰 意思是一样的:变量 i 具备在其它代码文件中 被使用的潜力。
与之相反的是static,static int i = 7 就表示 变量 i 只能在当前文件中可见。
下面的代码则链接失败:
#include <stdio.h>extern int i;int main(){printf("%d", i);return 0;}
即, A variable declaration that uses extern and has no initializer is not a definition.
extern int i; 只是一个声明,不是定义,表示 变量 i 的定义 到别的文件中找。这里没有别的文件,当然就链接失败了。
还有一种情况,全局作用域里既没有extern修饰,也没有=初始化 :int i; 这是定义了一个全局变量i,它的值会被默认初始化成 0 ,它可以在别的文件中使用。
0 0
- 全局变量名前面的extern
- extern全局变量的定义使用
- extern 和 全局变量的区别
- 全局变量,extern
- 全局变量 extern
- 关于extern声明全局变量的用法
- extern,static和全局变量的区别
- 全局变量,编译的一些概念:extern static
- extern和static修饰全局变量的区别
- IOS开发之----全局变量extern的使用
- extern声明全局变量的一些用法
- extern -- 全局变量 -- 一种良好的结构
- 命名空间 extern的用法 static全局变量
- static extern const 静态全局变量与全局变量的区别
- static extern const 静态全局变量与全局变量的区别
- c++函数名前面&的问题
- 全局变量一定要加 extern
- extern 与 全局变量
- 基于rails的schedule网站开发(1):安装git并用git管理Rails程序
- Android自定义ProgressBar样式
- 第十五周项目一哈希表及其运算的实现
- 使用Html在EditText中任意位置插入图片并正确显示
- 断言(ASSERT)的用法
- 全局变量名前面的extern
- android学习笔记——Intent
- Linux(1)---文件搜索命令
- ZooKeeper 搭建附录
- Codeforces Round #335 (Div. 2) B. Testing Robots 模拟
- iOS之小知识点
- android学习笔记——Activity的调用小技巧
- iOS开发效率篇——Xcode优秀插件使用(持续更新中)
- POJ 1007 DNA 排序