关于条件编译的问题
文件名为guard.h
#ifndef _IMPL_GUARD_H_
#define _IMPL_GUARD_H_
#pragma message( "Using guard file... ")
......
#endif
我在多个CPP文件中包括这个头文件,在VC6编译时,OUTPUT窗口会出现多个
Using guard file...
为什么不是预期的只输出一次呢?请各位指教...
[解决办法]
因为每个文件是一个独立编译单元。
[解决办法]
你问的跟本就不是个问题。
如果一个头文件只对一个cpp可见,那这个头文件基本上就没用了,还不如把内容直接拷贝到那一个cpp文件里算了。
相反,那个条件编译是用于防止同一头文件被同一个cpp文件多次包含的情况(直接或间接),因为通常一个东西最好只在一个文件中声明一次(注意,不是在多个文件中只声明一次)。