1

我有许多现有的 printf 语句,我想通过以下方式禁用:

#define printf(...) {};

但我想定义一个新的 myprintf 语句,它仍将使用 stdio printf。我该怎么做呢?

4

1 回答 1

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

于 2013-03-13T17:23:07.563 回答