#include <iostream>namespace foo { struct bar { int x; };}int main (voID) { struct foo::bar *a = new struct foo::bar; delete a; return 0;}
并编译:
g++ main.cxx -Wall -Wextra
它给我这个警告:
main.cxx: In function ‘int main()’:main.cxx:10:39: warning: declaration ‘struct foo::bar’ does not declare anything [enabled by default]
但是,如果我在new关键字后面取出了struct关键字:
#include <iostream>namespace foo { struct bar { int x; };}int main (voID) { struct foo::bar *a = new foo::bar; delete a; return 0;}
并以相同的方式编译,g不输出警告.为什么g输出警告如果我使用struct关键字?
解决方法 在C中,struct关键字定义一个类型,新类型不再需要struct关键字.这是C和C之间的许多区别之一. 总结以上是内存溢出为你收集整理的使用可选的’struct’关键字时c – g警告全部内容,希望文章能够帮你解决使用可选的’struct’关键字时c – g警告所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)