我有以下错误
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*,... )实际上我包括了#include <stdio.h>
但是对于solaries,我们写为
# ifndef HPUX
extern char *sprintf(char*,const char*,... )发布于 2010-03-24 13:29:18
您应该只包含<stdio.h>,而不是自己声明函数。(如果您不想从标准库中声明众所周知的sprintf函数,而是一些自定义函数,那么您应该为您的函数选择一个不同的名称)。
您的声明会导致类型冲突,因为同名的标准库函数返回ìnt,而不是char*。
发布于 2010-03-24 13:28:26
不要手动声明标准函数,只需包含<stdio.h>即可。
(而且,如果您坚持自己声明它们,至少要确保类型正确……)
发布于 2010-03-24 13:33:34
除非你告诉编译器忽略标准包含(和系统C库),否则你可能只想包含标准的头文件,也就是像David Gelhar (第一个回答的)所说的那样。
如果您正在使用其他一些C库,您仍然可以包含标准的头文件,但需要向编译器传递一个不同的include路径。
您可能会喜欢阅读有关extern意图实现的内容。
https://stackoverflow.com/questions/2505530
复制相似问题