我正在尝试编译旧项目,但是我收到了一个错误。该项目实现了函数dprintf
,这是一种printf
函数。但是,当我今天尝试编译该项目时,我发现dprintf
中已经定义了stdio.h
。所以我的问题是 - 如何隐藏标准dprintf
函数,因为现在我经常遇到这样的错误:
ntreg.c:82: error: conflicting types for 'dprintf'
/usr/include/stdio.h:397: note: previous declaration of 'dprintf' was here
ntreg.c:93: error: conflicting types for 'dprintf'
/usr/include/stdio.h:397: note: previous declaration of 'dprintf' was here
答案 0 :(得分:6)
dprintf()
未由标准定义。
如果为标准C配置编译器,则不应再公开该函数
gcc -std=c99 -pedantic ...
答案 1 :(得分:4)
只需将您的实施重命名为
int dprintf(... parameters ...)
到
int not_stdio_dprintf(... parameters ...)
然后无论你在哪里使用它都添加
#define dprintf not_stdio_dprintf