做了一个实验. 最后build失败,失败的原因是变量i被重定义了.原本按照我的思路,是不应该失败的.因为我用了条件编译,若先编译Source.cpp,则会#define __HEADER_H__并且定义变量i,等到之后再编译main.cpp时,由于已经定义__HEADER_H__,就会跳过变量i的定义.最终i只被定义一次,完美. 不管怎么说,编译器是不会出错的,仔细寻找一下原因吧.根据上面的实验结果可以推测出,两个cpp文件中#ifndef 和 #endif之间语句都得到了执行. 将上面的代码稍