我有许多现有的PrtTF语句,我想通过以下方式禁用:
#define printf(...) {};
但是我想定义一个新的myprintf语句,它仍然使用stdio printf。
我该怎么做?
最佳答案
使用
#define myprintf (printf)
括号将禁用宏扩展。
#include <stdio.h>
#define printf(...) do {} while(0)
#define myprintf (printf)
int main() {
printf("printf\n");
myprintf("myprintf\n");
}
(我并不建议首先定义
printf
。)有关为何使用
do {} while(0)
而不是{}
的解释,请参见Proper C preprocessor macro no-op