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

admin2018-01-24  30

问题 假设以下代码运行环境为32位系统,其中,__attribute__((ipacked))的作用是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。
    代码段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)的结果分别是__________。

选项 A、248和128
B、31和31
C、31和16
D、16和16

答案C

解析 本题考查程序开发的基础知识。
题目中studentl是一个结构体,sizeof(struct studentl)结果为结构体student1所有元素字节数之和,因此sizeof(struct studentl)结果为:10+4+1+16=31字节。
题目中student2是个联合,sizeof(union student2)结果是联合student2中最长一个元素的字节数。因此sizeof(union student2)结果为:16字节。
转载请注明原文地址:https://kaotiyun.com/show/EDWZ777K
0

相关试题推荐
最新回复(0)