C++结构体定义
struct inflatable
{
char name[20];
float volume;
double price;
}
C++创建结构本:
inflatable guest=
{
"Glorious Gloria",
1.88,
29.99
};
在C中是要加上struct前缀的,而C++可以省略;
访问:
如guest.volume等;
结构体声明的位置很重要:
1,放上main()里的最开始位置;内部声明,只能被所属函数使用
2,放在main()的前面,外部声明可以被其后的任何函数使用到;
变量也是如此;C++不提倡使用外部变量,但提倡使用外部结构声明
结构体可以直接赋值给另一个:
inlfatable choice=guest;
结构体数组:
inflatable gifts[2]=
{
{"Bambi",0.5,21.99},
{"Godzilla",2000,565.99}
};
结构中的位字段: 冒号后使用一个数字指定了使用的位数。
struct torgle_register
{
unsigned int SN: 4;
unsigned int : 4;
bool goodIn: 1;
bool goodTorgle: 1;
};
使用:
torgle_resister str={14,true,false};
union共用体:
是一种数据格式,能存储不同的数据类型,但只能同时存储其中的一种类型;
union one4all
{
int int_val;
long long_val;
double double_var;
}
由于共用体只能存储一个值,所以其长度为最大成员的长度;
用途:当数据作用两种或更多格式(但不会同进使用)时,可节省空间;
如小商品目录,其中有的ID为整数,有的ID为字符串;
struct widget
{
char brand[20];
int type;
union id
{
long id_num;
char id_char[20];
}/*id_val*/;//匿名共用体可以直接使用,
};
widget prize;
prize.id_num;
prize.id_char;
如是非匿名体则
prize.id_val.id_num;
prize.id_val.id_char;
共用体常用于(但并非只用于)节省内存,嵌入式系统编程,如控制烤箱,MP3播放器等;
操作系统数据结构或硬件数据结构;