Linux C 进阶 —— 零长数组

数据结构中包含的虚拟字段(零长数组)不占字节空间,但是会影响字节对齐,即影响结构体的大小,如

复制代码
 1 typedef struct 
 2 {
 3   short x;
 4   short y;
 5   short z;
 6 }ST1;
 7  8 typedef struct 
 9 {
10   short x;
11   short y;
12   short z;
13   int  w[0];
14 }ST2;
15 16 int main(void)
17 {
18     ST1 st1;
19     ST2 st2;
20     
21     printf("sizeof(ST1) = %lu B, sizeof(ST2) = %lu B\r\n", 
22            sizeof(ST1), sizeof(ST2));
23            
24     return 0;
25 }
复制代码

 

输出

sizeof(ST1) = 6 B, sizeof(ST2) = 8 B

 

posted @   云的边界  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示