程序在 32 位机器(使用 GCC)上的输出是什么?解释。
#include<stdio.h>
int main() {
struct node {
int data;
struct node *link;
};
struct node *p, *q;
p = (struct node *) malloc(sizeof(struct node));
q = (struct node *) malloc(sizeof(struct node));
printf("%d, %d\n", sizeof(p), sizeof(q));
return 0;
}
输出显示
上面的程序与结构成员对齐填充和数据打包有关吗?
最佳答案
不,您只是在打印指针的大小。它与结构的内部成员布局无关。
关于C 程序 - 结构变量数据打包和对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31740848/