我有两个这样的预处理器宏:
#define MyFullMacro(arg1, arg2) ; doSomething(prefix##arg1, arg2);
#define MyMacro(arg2) ; doSomething(prefixDefault, arg2);
当调用MyFullMacro
并为Default
明确给出arg1
时,我想抛出一个编译警告,说“你正在使用默认参数;请使用{{1相反。“ 这可能吗?
这将在使用LLVM编译的Objective-C中使用。优先答案应适用于使用GCC / Clang / LLVM编译的任何语言。