假设以下代码运行环境为32位系统,其中,__attribute__((packed))的作用是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。

假设以下代码运行环境为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)的结果分别是(    )。(2015年嵌入式系统计师下半年)
A.248和128
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字节。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,转载需标明出处。
如果您有更好的解答,欢迎留言评论。

本文链接:https://www.ruankaoti.com/post/2734.html

评论

阅读更多

微信扫码,加入打卡学习群,分享学习资料

最近发表