yx_uu 2017-07-05 10:47 采纳率: 50%
浏览 1855
已采纳

C语言求结构体大小怎么计算的

struct student{
9 char score[20];
10 int snum[10];
11

12 }stu;
13 int main()
14 {
15 printf("%d\n",sizeof(stu));
16 }

像这样算出来结果是60,如果在第11行加 char u[10]; 结果算出来是72,这是为什么呢?

  • 写回答

1条回答

  • 战在春秋 2017-07-05 11:26
    关注

    编译器会自动填充字节以对齐结构体元素内存位置。
    深入学习可以参考:

    http://www.cnblogs.com/clover-toeic/p/3853132.html

    如果想禁止编译器的这种行为:
    对visual studio来说,可以在文件头部加上:

     # pragma pack (1)
    

    如果有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器