[英]C preprocessor: macro function to call printf()
我想有条件地使用printf()或一条语句:
#define USE_PRINTF
#ifdef USE_PRINTF
#define macrofn(str) printf(str)
#else
#define macrofn(str) some_statement
#ifndef USE_PRINTF
但我收到以下错误:
incompatible implicit declaration of built-in function 'printf'
我究竟做错了什么? 谢谢
您不必在宏定义之前包含<stdio.h>
。 您真正需要的是#endif
以便开始使用#if
。 例如,以下程序可以正常运行:
#define USE
#ifdef USE
#define asd printf("asd")
#else
#define asd puts("kek")
#endif
#include<stdio.h>
int main( ) {
asd;
getchar( );
return 0;
}
是的。
您需要将#include <stdio.h>
添加到文件中。
在此处查看有关此错误消息的更多信息。
如果要使用printf
则需要包括stdio.h
。
您应该使用以下语法:
#include <stdio.h>
#define USE_PRINTF
#ifdef USE_PRINTF
#define macrofn(str) printf(str)
#else
#define macrofn(str) some_statement
#endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.