独闷闷网

 找回密码
 立即注册
搜索

关于在头文件中 与.c源文件中定义变量的问题(待解决)

查看数: 3529 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-1-2 17:02

正文摘要:

为啥又可以了,我知道这些全部是关于变量的问题,麻烦大家解答下

回复

智能化控制_888 发表于 2015-1-3 01:24:29
谢谢鸿哥哈,因为现在才看到40节不到,后面不太清楚,现在去看了,您的程序构架真的很有用,看起很简洁,而且重复次数很多,我就直接用函数封装来优化:lol:lol:lol:lol:lol:lol:lol
jianhong_wu 发表于 2015-1-2 20:32:24
本帖最后由 jianhong_wu 于 2015-1-2 20:43 编辑

推荐你仔细看看我连载文章中的:第六十八节:单片机C语言的多文件编程技巧。里面有详细的讲解。看懂了,你以上的问题就不攻自破。我第68节内容是告诉你这个游戏规则。你只要遵循这个游戏规则,就不会报错了。游戏规则不是用来解释的,是用来遵循的。


1. 头文件里面为啥只能声明变量,却不能给变量赋值?
鸿哥解答:定义的时候,编译器才会赋给变量对应的ram地址内存,声明只是告诉编译器这个变量再别的地方定义过了,可以直接用了。因此定义只能出现一次,并且可以赋初值。声明可以出现多次,不能赋初值。

2. 假设我现在已经用  extern unsigned char temperature;申明了temperature,编译过后默认值为多少?
鸿哥解答:取决于.c文件中定义时的初始值,如果.c文件中只是定义没有赋初值,那么就是编译器会给它一个不确定的默认值。

3. 假设在.h里面申明了,是不是还要在要用该变量的.c源文件中还要重新赋一次初值,那么我觉得那还不如不在头文件中定义,但是下面有个问题:
鸿哥解答:可以声明多次,但是必须定义一次。你定义的时候可以赋初值,也可以不赋初值。

4. 根据第三个问题的情况假如:(大家注意下我红色的地方我有问题)

鸿哥解答:其它的问题我建议你还是先仔细研究我第68节内容,里面有详细的规则。

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-5-3 01:49 , Processed in 0.180476 second(s), 21 queries .

快速回复 返回顶部 返回列表