一、中文乱码
- KEIL中文件编辑时中文乱码
修改
configure
->Editor的Encoding解码格式为GB2312 - 串口输出时中文乱码
文件的编码格式不对,重新新建文件确定编码格式为GB2312或UTF在将内容重新导入。
二、Extern的使用
对于管用较完善的编译器时,一般直接Include使用跨文件变量,编译器会自动判断include的文件中的变量在该文件中是定义还是声明。
而在MDK keil中不能直接用!!
首先重新说明一下头文件的作用:声明函数、变量等,一般不会有定义,用来给其他文件进行声明使用。
.c文件是对头文件定义的函数、变量等进行具体定义描述。
好了,进入正题:
若需要引用某文件中的变量,如果我们直接通过Include进行声明,会发现keil编译器会报多次定义的错误。multiply defined
如何解决?
- 方法一:
所有要引用的外部文件变量或函数不使用include包含,改为extern声明。 - 方法二(推荐):
函数用include包含,而所有需要跨文件使用的变量放在一个global.h中,在主文件程序中只include "global.h"一次,即只定义一次,对于其他需要引用的外部变量的文件中使用extern来声明。
总结:
KEIL中include头文件的变量均以定义变量来使用,所以变量的使用一般不用放在头文件中。