大家好,欢迎来到IT知识分享网。
编译C语言代码的时候,遇到编译报错如下:
error: function declaration isn’t a prototype [-Werror=strict-prototypes] void myFunc(){ ^
这个错误的主要问题是没有声明参数是void,改为void myFunc(void)就可以了。
啥时候惯出来的这个毛病?
错误信息最后的[-Werror=strict-prototypes]显示,应该是开启了这个编译选项的缘故。
查看下GCC的帮助信息, 当函数声明不是一个原型时告警。
Determines whether warnings are issued for functions declared or defined without specified argument types.
函数定义、声明时不指定参数类型都会报错的。
-Wstrict-prototypes Warn about unprototyped function declarations.
还有个小知识点,这个选项对C++代码是不起作用的。至于原因可以去 stack overflow上查查Why is gcc’s option “-Wstrict-prototypes” not valid for C++?:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/53088.html