c语言全局变量问题

模块化程序中有三个C文件,分别是1.c和2.c和3.c,他们分别对应1.h和2.h和3.h。现在假如在1.c最前面定义一个变量temp,而不是在1.h中对temp进行ex... 模块化程序中有三个C文件,分别是1.c和2.c 和3.c,他们分别对应1.h 和2.h和 3.h。
现在假如在1.c最前面定义一个变量temp,而不是在1.h中对temp进行extern声明。
假如在1.c里面有一个函数void fun(void)给temp赋值了。
fun()
{
temp=8;
}
那么这个temp变量在开头定义了,可以理解是1.c 里面的局部变量?
展开
 我来答
wdghy123
推荐于2016-09-04 · TA获得超过1583个赞
知道大有可为答主
回答量:1514
采纳率:95%
帮助的人:714万
展开全部
要想让变量的作用域只在1.c中,需要在外部变量声明前加static

没加static的外部变量是全局的
其它文件想要引用的话只要加上extern声明即可
更多追问追答
追问
你好,非常感谢回答我的问题,不过现在我还有一个疑问。

假设我在1.c中不加static修饰的话,编译器也不会报错,这个是正常的吗?
(单片机keil编译器)
追答
正常啊,不加static就是全局变量
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式