`
eriol
  • 浏览: 401164 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Union的一点使用心得

    博客分类:
  • C++
阅读更多

Union的概念

 

“联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被声明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,已达到节省空间的目的(还有一个节省空间的类型:位域)。 这是一个非常特殊的地方,也是联合的特征。另外,同struct一样,联合默认访问权限也是公有的,并且,也具有成员函数。

 

 

Union和Struct的区别

 

“联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和(空结构除外,同时不考虑边界调整)。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。

 

#include<stdio.h>

int main()
{
    union X {
        int a;
        char b[4];
    }x;

    x.a = 0x1;
    if (x.b[0] == 0x1)
        printf("little endian\n");
    else if (x.b[4] == 0x1)
        printf("big endian\n");

    return 0;
}
 
分享到:
评论

相关推荐

    SQL语句 UNION 和 UNION ALL 使用

    SQL语句 UNION 和 UNION ALL 使用

    union和struct混合使用C++源码

    本程序中定义了一个结构体,其成员有一个union,union中又定义了一个结构体,很好的体现了使用union的方法

    MySQL中union和order by同时使用的实现方法

    MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明。首先看下面的t1表。 1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。 SELECT * FROM ...

    MySQL中使用or、in与union all在查询命令下的效率对比

    主要介绍了MySQL中使用or、in与union all在查询命令下的效率对比,论证了在通常情况下union all并不一定比or及in更快,需要的朋友可以参考下

    UNION ALL 的使用方法

    SELECT ... UNION ALL SELECT C.TRD_NO FROM XXXXXXXXX C WHERE C.CLIENT_CD = W_IN_CLIENT_CD ) D WHERE A.TRD_NO = D.TRD_NO AND A.CLIENT_CD = W_IN_CLIENT_CD AND A.RESULT IS NULL ;

    Informatica Union Transformation组件 详解

    Informatica Union Transformation组件 详解

    数据库中union和union all的区别

    因此,如果不需要去重的结果集,使用UNION ALL可能比UNION更高效。 当需要合并查询结果集并去除重复行时,使用UNION操作符;当需要合并结果集并保留所有行,包括重复的行时,使用UNION ALL操作符。根据具体的需求...

    struct和union.pdf

    struct和union struct和union

    oracle集合union、union all、intersect、minus

    oracle集合union、union all、intersect、minus

    union和union All的区别.md

    如果想要在 UNION 中使用 ORDER BY 对结果集进行排序,需要将 ORDER BY 子句放在最后一个查询语句的后面。这是因为 ORDER BY 对整个结果集进行排序,而最后一个查询的结果集是最终结果集的一部分,只有在最后一个...

    C++11中union的使用方法示例

    通过关键字union进行定义,一个union可以有多个数据成员。例如 union Token{ char cval; int ival; double dval; }; c++11中union除了继承c语言的数据共享内存之外,行为上越来越像一个类,比如成员默认是public...

    union all与order by用法

    union all与order by用法,并详细举例,oracle pl/sql

    struct和union计算方法

    1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍; 2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素...

    Mysql联合查询UNION和UNION ALL的使用介绍

    一、UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列,列也...当 ALL 随 UNION 一起使用时(即 UNION ALL),不消

    UnionFind.h

    UnionFind.h

    union变量的外部调用方法,亲测编译通过

    union变量在多个函数调用时涉及到变量定义及外部声明的问题,该文档所述该类型变量的声明和调用已在亲测编译通过,希望对大家有所帮助

    sql利用union all行转列

    sql利用union all行转列 利用最原始的方法进行行转列 简单明了

    Mysql联合查询UNION和Order by同时使用报错问题的解决办法

    因此,常常出现这样的错误 代码如下:select * from [IND] where INDID&gt;10unionselect * from [IND] where INDID&lt;9&gt;10 order by INDID descunionselect * from [IND] where INDID&lt;9 order by INDID desc此时就出现...

    Sql中的UNION

    此资源为.txt文件,里面描述了sql中union的用法和案例,如果需要可以下载

    Sql中的UNION ALL

    此资源为.txt文件,里面描述了sql中union all的使用方法和案例,如果需要可以下杂

Global site tag (gtag.js) - Google Analytics