首先说下结构体,如果两个头文件定义的结构体内容不一样,但名字一样,当一个文件同时包含着两个头文件的时候,就会报如下错误:
此时,在不修改头文件的情况下(最好不要改动,不然第三方库可能调用出错),使用命名空间可以解决这个问题,把两个头文件放到两个不同的命名空间里,例如:
再说下预定义,打个比方当头文件1里使用了#define WORD unsigned short
头文件2里使用了 typedef unsigned short WORD;
当一个文件先#include <头文件1> 再#include <头文件2> 就会报如下错误:
解决方法也很简单,就是先#include <头文件2> 再#include <头文件1>
原