使用可选的’struct’关键字时c – g警告

使用可选的’struct’关键字时c – g警告,第1张

概述如果我写这个程序: #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 如果我写这个程序:
#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警告所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存