C语言到底能抽象到什么境界?
Gnome桌面环境有一个底层库,glib,就有一套题主提到的对象系统。这套系统顺便给vala提供了运行时。 Linux的VFS,也是类似的操作,给你定义了一套接口(函数指针组成的对象),只要你对应实现上面这些操作,就能做一套自己的文件系统。 另外的黑魔法,无非就是利用tagged union(ADT)和函数指针(高阶函数/闭包)来模拟函数式编程的一些操作啦。 只要你写着不嫌麻烦不嫌累,除了涉及泛型的抽象(这个其实也可以用宏来处理)不太容易搞定之外,其他的基本都不在话下。(反正到了搞不定的地方都能void*暴力解决)