c、c++结构类型

来源:互联网 发布:德国 四川 知乎 编辑:程序博客网 时间:2024/06/12 05:11

结构类型:用户自定义类型,由固定多个不同的元素(称为成员)构成的复合数据。
C++
结构类型的定义:struct <结构类型名> {<成员表>}
或匿名结构:struct {<成员表>} <变量名> (必须有变量名)【不能用来 定义其它的变量】
结构类型变量的定义:<结构类型名> <变量名表>
或 struct <结构类型名> <变量名表>(沿用了C语言用法)
结构类型的操作:
访问:<变量名>.<成员名>
关于变量名:不同结构类型的成员的名字可以相同;以下用法也合法:
struct A{……};
int A;
A=1; //把1赋值给整形变量A
【!!这种情况下如果要使用结构类型A,必须:struct A a;】
对结构类型的数据可以进行整体赋值,但只能在相同的结构类型之间进行。
初始化:A a={…,…,…};【定义结构类型时不能对其成员进行初始化,因为类型不是程序运行时刻的实体,它们不占有内存空间,对它们初始化是没有意义的。】

c语言
用法:typedef struct A a; a newA;
或 struct A{…,…}; struct A newA;
【为什么第一种必须typedef?
https://zh.wikipedia.org/wiki/Typedef】

另外一些特殊的用法:
实现寄存器:

typedef union {    union {        uint32_t _32;        uint16_t _16;        uint8_t _8[2];    } gpr[8];    struct{        uint32_t eax, ecx, edx, ebx, esp, ebp, esi, edi;        swaddr_t eip;    };} CPU_state;
0 0
原创粉丝点击