程序在 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/

10-15 02:08
查看更多