C语言全局变量一些基本问题

  不知不觉已经10点多了,而此时的我有的只是沉下心的思考,快到9月了,该把自己初始化为0,从头复习了。

    先说全局变量,定义全局变了很简单却又很危险。简单在于它定义在文件里独立于一切函数外面的变量,危险在于它的牵一发而动全身。

    那么,定义好一个全局变量我们如何去引用它呢?有两种方式:1.引用头文件的方式2.使用关键字extern,这两种方式在使用上都正确,而在编译时却不同,如果用第一种方式,编译器会在编译期间报错,用第二种方式只会在链接报错。我们都知道linux下c生成可执行文件经历了4个阶段,预编译,编译,汇编,链接,最后生成可执行文件了。思考这两种方式在编译时的4个阶段不难得出在什么阶段出错。

    在多个.c文件里可以引用同一个全局变量吗?答案是可以的,但怎样使用呢,首先先强调下什么是全局,既然是全局就是一个变量作用在项目所有文件。所以我们可以在某文件里用static声明它,意思是它的作用范围就是声明后所用的那部分,也可以说它是一个本地的全局变量。还有就是在不同的.c文件里引用时,只能一个文件里对全局变量初始化,否则在链接时,编译器无法判断初始值从而报错。

    全局变量和局部变量能否重名?这个是可以滴,但局部变量会屏蔽掉全局变量。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值