C语言 | 每日基础

Posted C语言入门到精通

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 | 每日基础相关的知识,希望对你有一定的参考价值。




古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:声明 struct x1 { ...}; 和 typedef struct { ...} x2; 有什么不 同?


阿一:第一种形式声明了一个 “结构标签”; 第二种声明了一个 “类型定义”。主要的区别是在后文中你需要用 “struct x1” 引用第一种, 而用 “x2” 引用第二种。也就是 说, 第二种声明更像一种抽象类新 —– 用户不必知道它是一个结构, 而在声明它的 实例时也不需要使用 struct 关键字。


读者:在 C语言中实现抽象数据类型什么方法最好?


阿一:让客户使用指向没有公开定义的结构类型的指 针是一个好办法。只要不访问结构成员, 声明和使用 “匿名” 结构指针 (不完全结构类型指针)是合法的。这也是使用抽象数据类型的原因。


读者:在 C语言中是否有模拟继承等面向对象程序设计特性的好方法?


阿一:把函数指针直接加入到结构中就可以实现简单的 “方法”。你可以使用各种不 雅而暴力的方法来实现继承, 例如通过预处理器或含有 “基类” 的结构作为开始的 子集, 但这些方法都不完美。很明显, 也没有运算符的重载和覆盖 (例如, “导出类” 中的 “方法”), 那些必须人工去做。显然的, 如果你需要 “真” 的面向对象的程序设计, 你需要使用一个支持这些 特性的语言, 例如 C++。























有时候,正是那些意想不到之人,成就了无人能成之事。
——图灵


小编二维码

长按/加好友

-  END -


____

______

________

____

______

________

以上是关于C语言 | 每日基础的主要内容,如果未能解决你的问题,请参考以下文章

C语言 | 每日基础

C语言 | 每日基础(61)

C语言 | 每日基础

C语言 | 每日基础

C语言 | 每日基础(31)

C语言 | 每日基础(23)