因为不熟悉,所以一直没用过union,刚刚看到个利用union来强转的例子,突然想到原来可以让强转这么优雅
union test
{
int a,
char c
}
test.a=3;
char c=test.c;
std::string的实现:
union _Bxty{ // storage for small buffer or pointer to larger one
_Elem _Buf[_BUF_SIZE];
_Elem *_Ptr;
} _Bx;
综上,union的设计就是把多个类型放在同一块内存上,读出来时看你用什么类型装载,其实和强制转换的概念如出一辙。