gpt4 book ai didi

通过 typedefs 的 C11 匿名结构?

转载 作者:太空狗 更新时间:2023-10-29 16:34:09 25 4
gpt4 key购买 nike

C11标准中加入了匿名结构,所以

typedef struct { 
struct {int a, b};
int c;
} abc_struct;

有效且标准。使用 typedef 代替完整的结构声明是否也在标准范围内?例如:

typedef struct { 
int a, b;
} ab_struct;

typedef struct {
ab_struct;
int c;
} abc_struct;

GCC 文档说这是 Plan 9 扩展,但它在我试过的几个编译器(包括 GCC...)。通过我对标准本身的阅读,我认为还可以,但这是一种很容易搞砸的细读。

最佳答案

这显然是 gcc 团队的 Joseph S. Myers 在向 C 委员会提出的问题中提出的。答案是否定的,它在 C11 中无效。

在这里查看答案:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1549.pdf

还有迈尔斯的评论:

This week's London WG14 meeting agreed to disallow the use of typedefs in declaring anonymous structure and union fields, as per N1549.

来源http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01151.html

问题在 SC22WG15.12205 中提出,请参阅 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1490.pdf 中的 5.28 SC22WG14.12205,匿名结构 (N1425)

关于通过 typedefs 的 C11 匿名结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9142163/

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