extern声明变量赋值
Posted LC编程开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extern声明变量赋值相关的知识,希望对你有一定的参考价值。
C语言提供了extern关键字来修饰变量和函数,extern关键字只是用于“声明”变量,并不是定义变量。例如在test.c源文件中定义了全局变量:
int value = 8;
此时,定义了变量value,并且初始化了数值8。那么,在其他源文件中使用extern关键字声明变量value的时候,声明格式如下:
extern int value;
此时,只是声明变量value是int类型,并不需要给变量初始化赋值。
如果写成:
extern int value = 1;
那么,在ubuntu系统中使用gcc编译,就会提示value变量重复定义。
注意:如果是在XP环境下使用vc6.0编译,可以编译成功并运行,变量value的初始值还是8,并没有被修改设置为1数值。
程序测试代码如下:
(1) 在test.c源文件中定义变量
//定义全局变量
int value = 8;
(2) 在test1.c源文件中声明使用变量
程序运行结果如下:
可以看到,编译错误,提示重复定义value变量。
在XP系统下,使用VC 6.0的编译系统,可以编译成功并运行。输出变量value的初始
值是8,并不是1。所以,可以看到,使用extern关键字对变量进行声明的时候,不用对其进行初始化赋值。因为,使用extern关键字只是声明变量,不是定义变量。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于extern声明变量赋值的主要内容,如果未能解决你的问题,请参考以下文章