c - 如何找到 sizeof 结构?

标签 c struct byte sizeof

<分区>

我得到以下 56 个字节。谁能解释一下这是怎么回事?

#include <stdio.h>

typedef struct how_many_bytes {
    long s[4];
    char c, e;
    int i[2];
    char *d;    
} How_Many_Bytes;

int main(){    
    printf("%lu ", sizeof(How_Many_Bytes));
}

不应该是(4*8) + 1 + 1 + 2(用于填充) + 4 + 4 + 8 = 52字节

最佳答案

因为它是一台 64 位机器,所以在你的计算中填充是 6 而不是 2

此外,您应该使用 %zu 来打印 size_t

关于c - 如何找到 sizeof 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19262336/

相关文章:

Golang 结构/接口(interface)

python - 类型错误 : 'bytes' object is not callable

java - 由用户运行给定的程序

c - 通用 scsi ioctl 后 fread 期间出现段错误

检查从 aaa..a 到 zzz..z 的每个 "word"

c - 如何在C中转发声明结构

c# - .NET 自定义结构类型的内存开销是多少?

c - MPI_ERR_RANK : invalid rank with cluster

c++ - 如何按照模式对特定文件运行 cppcheck?

PHP 字节 2 双字