小编Osc*_*hty的帖子

C Sizeof char[] 在结构中

我知道什么是填充以及对齐是如何工作的。鉴于以下结构:

typedef struct {
char word[10];
short a;
int b;  
} Test;
Run Code Online (Sandbox Code Playgroud)

我不明白 C 如何解释和对齐结构内的 char 数组。它应该是 9 个字符 + 终止符,它应该被认为是最长的,如下所示:

| - _ - _ - _ - _ - word - _ - _ - _ - _ - |
| - a - | - _ - b - _ - | padding the remaining 4 bytes
Run Code Online (Sandbox Code Playgroud)

“-”代表一个字节,“_”分隔字节。所以我们有 10 字节长的字,2 字节长的 a 和 4 字节长的 b 以及 4 字节的填充。但是当我打印 sizeof(Test) 它返回16.

编辑:我明白了。

c byte struct sizeof

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

标签 统计

byte ×1

c ×1

sizeof ×1

struct ×1