繁体   English   中英

C预处理程序:宏函数调用printf()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM