C中指针作为成员的链表中结构节点的大小

C中指针作为成员的链表中结构节点的大小,c,C,如何计算此结构的尺寸: struct Node{ int data; char b; char *c; }; 当我运行时,它给出16个字节 有人能解释一下吗 如何计算此结构的大小 您无法在不知道将使用哪种语言实现的情况下手动计算它,因为该语言没有指定它。如果您确实了解该语言实现,那么您可以在该语言实现的文档中找到相关信息。具体来说,您应该查找有关应用程序二进制接口(ABI)的信息 您可以使用sizeof运算符在编译时获取大小。什么“提供16字节”?为什么这个结果会让你感

如何计算此结构的尺寸:

struct Node{
    int data;
    char b;
    char *c;
};
当我运行时,它给出16个字节

有人能解释一下吗

如何计算此结构的大小

您无法在不知道将使用哪种语言实现的情况下手动计算它,因为该语言没有指定它。如果您确实了解该语言实现,那么您可以在该语言实现的文档中找到相关信息。具体来说,您应该查找有关应用程序二进制接口(ABI)的信息

您可以使用
sizeof
运算符在编译时获取大小。

什么“提供16字节”?为什么这个结果会让你感到困惑,即你的期望和理由是什么?您的体系结构和编译选项是什么?我猜在您的系统上,
int
是4字节宽,但指针是8字节宽。然后,成员的4+1+8,再加上确保
*c
正确对齐8个字节的3,等于16。