结构体,联合和枚举
来源:互联网 发布:钢琴淘宝 编辑:程序博客网 时间:2024/04/30 03:35
struct使用频率是union的大概100倍
结构体struct
struct tag(可选){ 类型 1 标识符1; ... 类型 N 标识符N;}变量定义(可选);//具体使用如下struct data_tag{ short dd; short mm; short yy;} my_birthday, xmas;struct data_tag easter, groundhog_day;//结构体中允许存在位段,无名字段,字对齐锁需要的填充字段struct pid_tag{ unsigned int inactive :1; unsigned int :1; unsigned int refcount :6; unsigned int :0; short pid_id; struct pid_tag *link;};
结构体struct参数传递
- int型变量和只包含一个int的结构体在参数传递时的行为可能完全不同,int变量一般会被传递到寄存器中,而结构体变量很有可能被传递到堆栈中
- 结构体内放置数组,这时可以把它作为第一类型,把整个数组作为参数传递给函数,也可以把它作为函数返回值
struct s_tag { int a[100]; };struct s_tag a,b;a = b; //可行struct s_tag foo(struct s_tag sTmp);
联合体union
union tag(可选){ 类型 1 标识符1; ... 类型 N 标识符N;}变量定义(可选);
- 联合体一般用来节省空间,因为有些数据项是互斥的,同时存储它们,显然颇为浪费
- 第二个用途是把同一个数据解释成两种不同的东西,如下所示,这个联合允许程序员课题提取整个32位作为int,也可以分别提取不同的位
union bits32_tag{ int whole;//32 bits struct {char c0,c1,c2,c3;} byte;//4个8 bits}value;
枚举enum
enum tag(可选){ 内容...}变量定义(可选);
- 枚举都可以通过#define替代掉
- 优点是枚举在调试中可见,宏一般在编译时就已经被丢弃了
Reference
C专家编程
0 0
- 联合 枚举和结构体
- 结构体,联合和枚举
- 结构、联合和枚举
- 结构,联合和枚举
- 结构体、联合、枚举
- 结构体,枚举,联合
- 指针、结构、联合和枚举
- C++、 C 中的结构体、联合和枚举 异同
- C语言的结构体、联合和枚举
- 自定义类型(结构体、位段、枚举和联合)
- 联合和结构体
- 复合数据类型,结构体,联合,枚举
- 基础备忘:结构体、联合、枚举笔记
- C语言基础知识----联合 && 枚举 && 结构体
- 【C语言总结】结构体、联合、枚举
- 结构体、联合、枚举与高级指针
- C语言结构体、枚举、联合
- 总结结构体枚举联合位段
- 数学中几种常用的距离
- 自主学习之RxSwift(一) -----Driver
- 工厂方法模式
- iOS开发中清理沙盒目录的缓存
- 多字文本android:ellipsize属性不正常工作的解决办法
- 结构体,联合和枚举
- Android6.0的处理 转载
- sizeof的用法
- 【Android进阶】文本切换器(TextSwitcher)的功能与用法(自动切换仿京东淘宝快报效果)
- 【LeetCode】104. Maximum Depth of Binary Tree
- Unity新项目如何快速理清顶层代码结构
- firefox和chrome的开发者工具使用技巧
- Java对象序列化之 transient 使用小记
- text-overflow:ellipsis的巧妙运用