繁体   English   中英

如何声明在另一个结构内部声明的结构变量?

[英]How to declare a variable of struct that declared inside another struct?

我有一个结构声明如下:

struct a {
    struct b {
        int d;
    } c;
};

如何声明的变量ba 在C ++中,我可以使用a::bx; 但是,在C语言中,需要在结构名称之前指定struct关键字。

C没有嵌套类型。 您不能编写a::xb或任何类似的形式。 如果您想摆脱struct关键字,那是另一个问题。 使用typedef 但它不允许嵌套类型。

typedef struct b_t {
  int d;
} b;
typedef struct {
  b c;
} a;
b some_b;
a some_a;
int f() {
  some_b.d=42;
  some_a.c=some_b;
  return 0;

}

C具有平面布局; 当您在另一个结构中声明一个结构时,前一个结构只是被放入全局名称空间中。

因此,在您的示例中,它只是struct b

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM