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)
    

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

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

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料