宏可以轻松地为C语言中的关键字设置别名,但它是否可以用于更改宏关键字呢?这样,就不需要写:
#include <stdlib.h>
#define se if
有人可能会写
#inkludu <stdlib.h>
#difinu se if
换句话说,预处理指令能否被设置别名,最好不需要修改代码本身,例如通过编译器参数(如gcc中的
-D
)来实现。以下简单测试将失败:
#define difinu define
#difinu valoro 2
int main() {
int aĵo = valoro;
return 0;
}
以下是出现的错误:
% clang makro.c -o makro
makro.c:2:2: error: invalid preprocessing directive
#difinu valoro 2
^
makro.c:5:16: error: use of undeclared identifier 'valoro'
int aĵo = valoro;
^
2 errors generated.