gpt4 book ai didi

c++ - 使用可选的 'struct' 关键字时出现 g++ 警告

转载 作者:可可西里 更新时间:2023-11-01 15:59:13 25 4
gpt4 key购买 nike

如果我写这个程序:

#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++不输出警告。如果我使用 struct 关键字,为什么 g++ 会输出该警告?

最佳答案

在C++中,struct关键字定义了一个类型,新的类型不再需要struct关键字。这是 C 和 C++ 之间的众多差异之一。

关于c++ - 使用可选的 'struct' 关键字时出现 g++ 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com