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