gpt4 book ai didi

c - 没有标签的结构

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:35 25 4
gpt4 key购买 nike

如果我这样声明一个结构:

struct
{
int a;
char b;
} ident;

那个结构有类型吗? (即未指定类型、默认类型等)。

相反,如果我声明这样的结构:

struct J
{
int a;
char b;
} ident;

我们可以说identstruct J类型的结构变量。

最佳答案

之后

struct { int a; char b; } ident;

ident 具有“匿名结构类型”,您将无法声明相同类型的另一个变量*)。也就是说,两个匿名结构类型永远不兼容。例如,如果您这样做了,

struct { int a; char b; } ident2;

之后,identident2 将是不同的(尽管相同)类型和类似的赋值

ident2 = ident;

将违反约束(编译器必须给出诊断消息并可能拒绝编译,大多数编译器可能会这样做)。


*) 一些编译器有允许它的扩展。例如,使用 Gcc,您可以:

typeof(ident) ident2 = ident;

关于c - 没有标签的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25871851/

25 4 0