Relearning C:新成语?

Jay*_*itt 10 c idioms

我从2000年左右没有碰过它就重新学习了C. 从那以后我一直在Ruby工作,我发现了一个我从未知道的编程习语.

过去十年中出现了哪些重要的C技巧,书籍,成语等,如果有的话?我知道C99和C11标准,但我应该在哪里看?或者,即使OOP和FP成为常态,C风格仍保持不变?

Mat*_*lia 4

C在语言级别上不支持过程式编程——这是一个精确的选择,因为它生来主要是一个“可移植汇编”,并且它被用来尽可能紧密地靠近机器工作(不诉诸汇编) )。就编程范式而言,大多数汇编语言只提供堆栈和函数调用语句(某些微语言甚至不提供)——而这正是 C 的建模基础。

毕竟,C++ 和 Objective C 诞生是有原因的:C 必须保留其设计理念,并且为了添加更多抽象的东西,人们必须实际分叉该语言。

话虽这么说,没有什么可以阻止您用 C 编写 OO 代码 - 实际上,很多人都这样做(我想说这是 C 中最分散的习惯用法之一),但您不必期望几乎任何语法糖:你必须使用structs 来表示数据,使用“普通”函数来“模拟”方法,使用组合来实现继承,使用指针表来实现多态性,等等。不过,我不知道这是否算作“过去十年”的习语,它的使用时间要长得多。