Ore*_*ost 12
你也可以在C中编写面向对象的代码.你没有得到所有的C++好东西而且它很难看,你必须手动传递这个指针(我已经看到self用于此,为了使它与C++兼容) ),但它的工作原理.因此从技术上讲,您不需要纯过程语言中的全局状态,原因与面向对象语言中不需要它的原因相同.你只需要明确地传递状态,而不是像在OO语言中那样隐式地传递状态.
作为示例,请查看C标准库中的文件I/O函数如何使用指向FILE(很大程度上)不透明的对象的指针.或者看看OS API如何处理句柄以及封装信息.程序创建对象,使用作用于这些对象的API并关闭/删除对象 - 所有这些都使用直接C.