《你必须知道的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章:结构联合和枚举的主要内容,如果未能解决你的问题,请参考以下文章

《你必须知道的495个C语言问题》笔记

《人月神话》读书笔记之第1章焦油坑

你必须知道的495个C语言问题,学习体会一

你必须知道的495个C语言问题,学习体会五

《Java编程思想》读书笔记之第8章-多态

《Java编程思想》读书笔记之第3章-操作符