美文网首页
struct与union的区别

struct与union的区别

作者: JosephCheng | 来源:发表于2016-08-01 00:22 被阅读142次

    设有以下说明和定义:  
      typedef union
    {
    long i;
    int k[5];
    char c;
    } DATE;

    struct data
    {
    int cat;
    DATE cow;
    double dog;
    } too;  
     DATE max;   
    则语句 printf("%d",sizeof(struct data)+sizeof(max));的执行结果是:___52____
    考点:区别struct与union.(一般假定在32位机器上)  
    答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20. data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

    相关文章

      网友评论

          本文标题:struct与union的区别

          本文链接:https://www.haomeiwen.com/subject/ixjxsttx.html