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*,... ) 

实际上我包括#include

但对于我们写的太阳系

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

    而不是自己声明函数,你应该只包括 。 (如果您没有尝试从标准库声明众所周知的sprintf函数,而是使用某些自定义函数,则应为您的函数选择不同的名称)。

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

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

    (而且,如果你坚持自己宣布,至少得到正确的类型…)

    除非您告诉编译器忽略标准包含(以及系统C库),否则您可能只想包含标准标题,即David Gelhar (第一个回答)说。

    如果您正在使用其他一些C库,您仍然会包含标准头文件,但是通过将不同的包含路径传递给编译器。

    您可能喜欢阅读extern目标。

    根据此Solaris手册页(对于Solaris DDI) , sprintf定义为返回char * 。 看起来该函数的定义仅用于设备驱动程序开发。 如果您没有实现设备驱动程序,请改为使用标准C版本(返回int ),包括并且不要在标头或源代码中的任何位置再次声明它。

      以上就是c/c++开发分享C错误类型冲突相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/523099.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐