//union和enum的使用
#include<iostream>
#include<cstring>
using namespace std;
class Token
{
public:
enum TokenKind { INT1, CHAR1, DBL1 };
TokenKind tok;
union TokenValue
{
char cval;
int ival;
double dval;
}val;
};
union number
{ /*定义一个联合*/
int i;
struct
{ /*在联合中定义一个结构*/
char first;
char second;
}half;
}num;
union
{
int i;
char x[2];
}a;
int main()
{
Token first_token;
first_token.tok = Token::INT1;
switch (first_token.tok)
{
case Token::INT1:
first_token.val.ival = 42;
break;
case Token::CHAR1:
first_token.val.cval = '1';
break;
case Token::DBL1:
first_token.val.dval = 3.14;
break;
default:
break;
}
num.i = 0x4241; //联合成员赋值
printf("%c%c\n", num.half.first, num.half.second);
num.half.first = 'a'; /*联合中结构成员赋值*/
num.half.second = 'b';
printf("%x\n", num.i);//以十六进制的方式输出
a.x[0] = 10;
a.x[1] = 1;
printf("%x %d", a.i,a.i);
return 0;
}
union和enum的使用
最新推荐文章于 2024-06-06 21:48:33 发布