我想通过以下方法禁用许多现有的printf语句:
#define printf(...) {};
但我想定义一个仍然使用stdio printf的新myprintf语句。 我该怎么做?
答案 0 :(得分:4)
使用:
#define myprintf (printf)
括号将禁用宏扩展。
#include <stdio.h>
#define printf(...) do {} while(0)
#define myprintf (printf)
int main() {
printf("printf\n");
myprintf("myprintf\n");
}
(不是说我会首先推荐#defining printf
...)
有关我使用do {} while(0)
代替{}
的原因的说明,请参阅Proper C preprocessor macro no-op