Ken*_*ows 2 c undef c-preprocessor
所以,首先,这里是代码,实际名称切换为通用名称以限制混淆.
/* Get the list of Hotkey commands */
#define A_COMMANDS_MACRO(a, b, c, d) a = b ,
enum {
#include "commandsFile.def"
} ;
#undef A_COMMANDS_MACRO
Run Code Online (Sandbox Code Playgroud)
这是我一直在查看的一些源代码的片段,并考虑将forking作为一种熟悉C编程语言的复杂性的方法.所以,对于我未经训练的眼睛,这似乎什么都不做.在我的大脑中,定义一些东西,然后立即取消它,似乎会相互抵消.
显然,我意识到我错了.但为什么我错了?
"commandsFile.def"文件可能在内部某处使用"A_COMMANDS_MACRO"宏.
请记住,"#include"基本上将包含的文件粘贴到包含的文件中,因此在处理"commandsFile.def"时#define仍然有效.