![](/img/trans.png)
[英]How to pass a pointer to a struct declared inside another struct as a function parameter?
[英]How to declare a variable of struct that declared inside another struct?
我有一个结构声明如下:
struct a {
struct b {
int d;
} c;
};
如何声明的变量b
外a
? 在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.