求大神解释:sizeof(联合体)

union{
    int a;
    char b[5];
    int *c;
}UN;

printf("%d\n",sizeof(UN));

程序跑了一下,输出结果为  8,
为啥不是 5 呢?#笔试题目#
全部评论
内存对齐
点赞 回复 分享
发布于 2019-09-05 21:48
你可以看一下 sizeof(int *), 这个联合体中最长的元素
点赞 回复 分享
发布于 2019-09-05 22:06
64位平台的指针大小是  8 字节, int 也是 8 字节
点赞 回复 分享
发布于 2019-09-05 22:15
内存对齐
点赞 回复 分享
发布于 2019-09-05 22:30
点赞 回复 分享
发布于 2019-09-05 22:35

相关推荐

08-29 07:47
已编辑
莆田学院 Java
路上小荷:小孙,你好,我是由XX幼儿园、XX小学、XX初中、XX高中、XX大***合培养的研究生,想寻找能够陪我一起成长,登上人生巅峰的公司。在公司任职期间公司需要提供免费食宿、百万年薪以及私人医生。预计65岁退休,退休后公司可以求我给新员工讲述奋斗历程
点赞 评论 收藏
分享
点赞 5 评论
分享
牛客网
牛客企业服务