本帖最后由 jianhong_wu 于 2015-1-2 20:43 编辑
推荐你仔细看看我连载文章中的:第六十八节:单片机C语言的多文件编程技巧。里面有详细的讲解。看懂了,你以上的问题就不攻自破。我第68节内容是告诉你这个游戏规则。你只要遵循这个游戏规则,就不会报错了。游戏规则不是用来解释的,是用来遵循的。
1. 头文件里面为啥只能声明变量,却不能给变量赋值? 鸿哥解答:定义的时候,编译器才会赋给变量对应的ram地址内存,声明只是告诉编译器这个变量再别的地方定义过了,可以直接用了。因此定义只能出现一次,并且可以赋初值。声明可以出现多次,不能赋初值。
2. 假设我现在已经用 extern unsigned char temperature;申明了temperature,编译过后默认值为多少? 鸿哥解答:取决于.c文件中定义时的初始值,如果.c文件中只是定义没有赋初值,那么就是编译器会给它一个不确定的默认值。
3. 假设在.h里面申明了,是不是还要在要用该变量的.c源文件中还要重新赋一次初值,那么我觉得那还不如不在头文件中定义,但是下面有个问题: 鸿哥解答:可以声明多次,但是必须定义一次。你定义的时候可以赋初值,也可以不赋初值。
4. 根据第三个问题的情况假如:(大家注意下我红色的地方我有问题)
鸿哥解答:其它的问题我建议你还是先仔细研究我第68节内容,里面有详细的规则。 |