标记联合体
来源:互联网 发布:mysql查看锁表情况 编辑:程序博客网 时间:2024/05/02 02:02
对于typedef的相互嵌套的问题,把哪个放在前面都不行。
解决办法。
在最先面先声明一下。
这样在Exp_time里面编译器就知道Exp是什么意思了。
用编辑联合体可以做出类似java的多态。也就是可以用一个基类表示所有可能的子类。
上面的这个关系也是用Exp表示一种抽象的运算, 而add和times是两个子类,是具体的。可以用Exp.T代表所有子类。
当用C语言实现的时候,么每次使用Exp这种结构的时候,都要先判断里面的enum是那种类型,enum标记了联合体里面具体是什么。
标记联合体的框架
struct tag_union
{
enum Kind;
union
{
primitive type...
struct...(具体类型,而不是指针)
}u;
}
C语言实现版本:
http://git.oschina.net/qcliu/testC/blob/master/tag_union.c
0 0
- 标记联合体
- 联合体
- 联合体。。。
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 联合体
- 标记
- 标记
- 标记
- 标记
- 标记
- 标记
- python基础知识
- Leetcode 之Find Peak Element
- CMAKE的使用
- Linux-管道及IO重定向
- js 正则替换 replace()方法
- 标记联合体
- C++检测内存泄露、DebugView的使用
- Android详细的对话框AlertDialog.Builder使用方法
- leetcode.10------------Regular Expression Matching
- 领域驱动设计实现之路
- Oracle语句块耗时
- Jquery替换字符串实例
- Linux中查看各文件夹大小命令du -h --max-depth=1
- Linux-grep及正则表达式