假设以下代码运行环境为32位系统,其中,__attribute__((packed))的作用是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。代码段1:struct student1{char name[10];long sno;char sex;float score[4];}__attribute__((packed))*p1,a1,b1;代码段2:union student2{char name[10];long sno;char sex;float score[4];}*p2,a2,b2;sizeof(struct student1)、sizeof(union student2)的结果分别是______。
2023-09-01
A.248和128
B.31和31
C.31和16
D.16和16
参考答案:C
B.31和31
C.31和16
D.16和16
参考答案:C
本题考查程序开发的基础知识。题目中student1是一个结构体,sizeof(struct student1)结果为结构体student1所有元素字节数之和,因此sizeof(struct student1)结果为:10+4+1+16=31字节。题目中student2是个联合,sizeof(union student2)结果是联合student2中最长一个元素的字节数。因此sizeof(union student2)结果为:16字节。
![]( //img1.runjiapp.com/duoteimg/tiku/images/pc/questionBank/main-list-title-icon.png)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_58.jpg)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_23.jpg)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_90.jpg)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_97.jpg)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_23.jpg)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_100.jpg)
![](https://img1.runjiapp.com/duoteimg/tiku/banner/bn_78.jpg)
热门标签