这里是一个警告,我和很多人在那里在网络上,看到C++代码运行GCC时:为什么gcc的选项“-Wstrict-prototypes”对C++无效?
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
的警告文字是很清楚的:“C++”是不是在集合[阿达/ C/ObjC],所以我毫不怀疑gcc为什么在编译C++代码时给出这个警告。 (仅供参考,尽管使用C++代码打开此标志的原因是因为它主要是C代码,但我们选择了严格的(高级别)警告选项列表,但我们添加了一些C++代码。
我的问题是:为什么不是这样的警告适用于C++
的警告选项GCC的文档,从http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Warning-Options.html是:
-Wstrict的原型(C和Objective-C只)如果函数被声明或定义而没有指定参数类型,则会发出警告( 旧样式函数定义在没有警告的情况下被允许,如果 的声明指定的参数类型之前。)
现在我只知道我我忘了什么东西显然对C++的,但不C++还需要在原型指定参数类型的功能呢?诚然,这些函数原型通常在类声明中,因为函数通常是成员函数,但是不是原型还是需要的?或者即使他们只是良好的做法,那么为什么gcc不会提供这个选项的支持?或者,如果没有,通过C++的并行选项?
所以_warning_对于C++来说是多余的,因为如果我违反了C++代码中的要求,编译器会正确地报告_error_(并且编译失败)? – talkaboutquality
是的,因为你提到的原因,在C++中对于缺少原型的警告是多余的。就我而言,用于C++的'-Wstrict-prototypes'的GCC警告问题也是多余的;就我而言,gcc可以默默地忽略C++的选项。 –