c、c++结构类型

结构类型:用户自定义类型,由固定多个不同的元素(称为成员)构成的复合数据。
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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值