./a.cpp
./include/first.h
./include/include.first.h
g++ -I./ -I./include/include -I./include a.cpp
g++ -I./ -I./include -I./include/include a.cpp
会发生什么呢?上面两个first.h里面做的事情是不一样的哦~~
通过实验你会知道,如果能够在第一个路径里面找到期望的include文件,那么编译器是不会承认第二次找到的文件的!
这里两个first.h的格式都为
#ifndef FIRST_H
#define FIRST_H
class CFirst
{
//省略实现
};
#endif
#define FIRST_H
class CFirst
{
//省略实现
};
#endif
如果把其中的一个#define FIRST_H改为FIRST_H_1,呵呵~ 结果又不一样咯~