小编fed*_*evi的帖子

C 中的结构扩展

假设定义了 2 个结构体,如下所示:

typedef struct {
   T x;
   T y;
} A;

typedef struct {
   A a;
   T z;
} B;
Run Code Online (Sandbox Code Playgroud)

我可以将指向结构 B 的指针视为指向结构 A 的指针吗?

实际上,这是可靠的/标准的/可移植的/编译器不变的:

B b = {{1,2},3};
A * a = &b;

print(a->x);
print(a->y);
Run Code Online (Sandbox Code Playgroud)

c struct pointers compilation

3
推荐指数
1
解决办法
260
查看次数

标签 统计

c ×1

compilation ×1

pointers ×1

struct ×1