C中具有相同名称的函数

时间:2015-04-26 11:57:50

标签: c function

我正在尝试编译旧项目,但是我收到了一个错误。该项目实现了函数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

2 个答案:

答案 0 :(得分:6)

dprintf()未由标准定义。

如果为标准C配置编译器,则不应再公开该函数

gcc -std=c99 -pedantic ...

答案 1 :(得分:4)

只需将您的实施重命名为

int dprintf(... parameters ...)

int not_stdio_dprintf(... parameters ...)

然后无论你在哪里使用它都添加

#define dprintf not_stdio_dprintf