C错误冲突类型

C错误冲突类型,c,C,我有以下错误 error : conflicting types for 'sprintf' error : conflicting types for 'vsprintf' error : conflicting types for 'vprintf' error : conflicting types for 'select' 在我的头文件中,代码是 extern char *sprintf(char*,const char*,... ) 实际上我包括#包括 但为了慰藉,我们写的是 #

我有以下错误

error : conflicting types for 'sprintf'
error : conflicting types for 'vsprintf'
error : conflicting types for 'vprintf'
error : conflicting types for 'select'
在我的头文件中,代码是

extern char *sprintf(char*,const char*,... )
实际上我包括
#包括

但为了慰藉,我们写的是

# ifndef HPUX
extern char *sprintf(char*,const char*,... )

不要手动声明标准函数,只包括


(而且,如果您坚持自己声明它们,至少要正确使用类型…

不要手动声明标准函数,只需包含


(而且,如果您坚持自己声明这些函数,至少要正确地输入它们……)

而不是自己声明函数,您应该只包含
。(如果您不是试图声明标准库中众所周知的
sprintf
函数,而是一些自定义函数,那么您应该为函数选择不同的名称)


您的声明会导致类型冲突,因为同名的标准库函数返回的是
ìnt
,而不是
char*

,而不是您自己声明的函数,您应该只包含
。(如果您不是试图声明标准库中众所周知的
sprintf
函数,而是一些自定义函数,那么您应该为函数选择不同的名称)


您的声明会导致类型冲突,因为同名的标准库函数返回
ìnt
,而不是
char*

,除非您告诉编译器忽略标准包含(和系统C库),否则您可能只想包含标准头,即(第一个回答的)所说的

如果您使用的是其他一些C库,那么仍然可以包含标准头,但要将不同的包含路径传递给编译器


你可能会喜欢阅读你想要完成的事情

除非您告诉编译器忽略标准包含(和系统C库),否则您可能只想包含标准头,如(第一个回答的)所述

如果您使用的是其他一些C库,那么仍然可以包含标准头,但要将不同的包含路径传递给编译器


你可能会喜欢阅读你想要完成的事情

根据,
sprintf
定义为返回
char*
。该函数的定义似乎仅用于设备驱动程序开发。如果您没有实现设备驱动程序,请使用标准的C版本(返回
int
),包括
,不要在头文件或源代码中的任何地方再次声明它。

根据
sprintf
定义为返回
字符*
。该函数的定义似乎仅用于设备驱动程序开发。如果您没有实现设备驱动程序,请使用标准C版本(返回
int
),包括
,不要在头文件或源代码中的任何地方再次声明它。

是的,第9f节手册页类似于内核中定义的函数,不在程序可以链接的用户空间库中。是的,像这样的第9f节手册页是针对内核本身定义的函数的,而不是在程序可以链接的用户空间库中。