我有一个大项目,其中一些宏被定义为:
#define RECORD_COUNT 141 // in one file file1.h
另一个文件说file2.c正在使用这个宏。但是file2.c不包括file1.h。
因此有可能在编译第一个文件时得到预编译的是file1.h,宏被添加到全局范围。这使得预编译file2.c成为可能吗?
答案 0 :(得分:0)
在您将宏定义用于某处之前,您的宏定义很可能正在编译。
只是为了检查您是否可以使用pragma message
检查编译器是否触及该代码。
http://msdn.microsoft.com/en-us/library/x7dkzch2.aspx
答案 1 :(得分:0)
您无需直接包含头文件即可使用它。也可以有间接包含。
例如,
假设file1.h有
#define RECORD_COUNT 141
file2.h有,
#include "file1.h"
...
...
如果file2.c有#include "file2.h"
,则可以在该include语句之后使用file2.c中'file1.h'中的任何宏或定义。