如何查看预处理的结果?例如,假设我有以下代码:
#define CONCATENATE(X, Y) X ## Y
#define STRING_1 First
#define STRING_2 Second
#define STRING_3 CONCATENATE(STRING_1, STRING_2)
有没有办法确保STRING_3
稍后会在程序中扩展到FirstSecond
?
答案 0 :(得分:8)
每个编译器都应提供一个开关来保留预处理代码
-E
Keep preprocessed files
或/P
开关对于其他编译器,我打赌你会在文档中找到合适的开关
答案 1 :(得分:2)
我认为最好的办法是在g++ -E <file> -o <file>.out
下运行C ++文件,然后检查结果。
我认为你的意思是在调试中检查它 - 显然你不能在运行时检查它,因为预处理器信息将不存在。