extern 修饰全局变量深度全方位剖析
来源:互联网 发布:数据工具培训心得 编辑:程序博客网 时间:2024/06/05 09:28
从下面几个例子来剖析
1)
extern int a;
int main(int argc, constchar * argv[]){
printf("%d",a);
}
编译不会报错,externint a,只是一个声明,并不是定义,既然已经声明变量存在,当然编译就不会报错,但是如果别的文件未定义全局变量,形式:externint a =某个数
int a =某个数,
那么运行会报错
注意:externinta;这样的表达式只是一个声明,并没有定义变量。
2)
extern inta=10;
int main(int argc,constchar * argv[]){
printf("%d",a);
}
这种形式表示,主函数中既声明了,又定义了,一个全局外部变量a注意1:别的文件未定义同名全局变量,也就是,别的文件中不能以这样的形式:
1) int a;
2) int a = 某个数;
3)extern int a = 某个数;
那么,编译链接均ok
注意:在任意文件出现(1)- 3)中的一条或多条那么,编译ok,链接报错
3)
//正确用法:
//主函数中声明变量
extern int a;
int main(int argc, constchar * argv[]){
printf("%d",a);
}
别的文件中要定义全局变量a
1) int a;
2) int a = 某个数;
3)extern int a = 某个数;
如果在别的文件中这么写externint a,
那么就又变成式声明了,是不行的;
注意:extern不可以修饰局部变量
0 0
- extern 修饰全局变量深度全方位剖析
- static和extern修饰全局变量
- extern和static修饰全局变量的区别
- static、extern、无修饰符全局变量…
- c语言中extern和static修饰的全局变量
- extern修饰全局变量正确用法和链接错误的解决方法
- 全局变量,extern
- 全局变量 extern
- 全方位剖析 Android 4.3
- 全方位剖析List
- 全方位剖析Set
- 学习Linux C编程之数据类型 问题-extern及static修饰全局变量的区别
- 全局变量一定要加 extern
- extern 与 全局变量
- 全局变量、局部变量、extern
- extern 与 全局变量
- 用extern定义全局变量
- 用extern定义全局变量
- LightOJ Trailing Zeroes (III) 1138【二分搜索+阶乘分解】
- eclipse自动补全的设置
- 多线程 - 02.利用pthread实现多线程
- Allegro过孔打在焊盘上(via与pad重叠),如何显示DRC错误?
- Android-自定义发送/接收广播(BroadcastReceiver)
- extern 修饰全局变量深度全方位剖析
- hdu 5411 多校——矩阵快速幂模板
- Light oj 1138 - Trailing Zeroes (III) 【二分查找 && N!中末尾连续0的个数】
- 多线程 - 03.NSThread使用
- 03 java.lang.Boolean
- awaitTermination() shutdown()
- File:迭代读取文件夹下的文件或者文件夹
- [iOS]上下文的理解
- 数据库如何给含有外键的表中插入数据?