《你必须知道的495个C语言问题》读书笔记之第2章:结构联合和枚举
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《你必须知道的495个C语言问题》读书笔记之第2章:结构联合和枚举相关的知识,希望对你有一定的参考价值。
1. Q:下面两个声明有何区别?
struct x1 {...}; typedef struct {...} x2;
A:第一种形式声明了一个“结构标签”,第2种形式声明了一个“类型定义”。前者在声明结构的实例时必须使用struct关键字,如"struct x1 a;",后者则不需要使用struct关键字,如"x2 b;"。但这个区别在C++编译器和某些模仿C++的C编译器中已经完全不存在了,在C++中结构标签在本质上都自动声明为类型定义。
2. Q:在C语言中是否有模拟继承等面向对象程序设计特性的好方法?
A:把函数指针直接加入到结构中就可以实现简单的“方法”。你可以使用各种不雅而暴力的方法来实现继承,例如通过预处理器或让“基类”的结构作为初始的子集,但这些方法都不完美。另外,也没有操作符的重载和覆盖。
以上是关于《你必须知道的495个C语言问题》读书笔记之第2章:结构联合和枚举的主要内容,如果未能解决你的问题,请参考以下文章