Chinaunix
标题:
为什么有些代码里面提倡用宏定义来替代接口的作用?
[打印本页]
作者:
我爱CUnix
时间:
2014-04-19 21:23
标题:
为什么有些代码里面提倡用宏定义来替代接口的作用?
http://troydhanson.github.io/uthash/index.html
https://github.com/troydhanson/uthash/tree/master/src
看这里,全是宏定义,我很想知道各位对这个的看法...
作者:
zhouzhenghui
时间:
2014-04-20 13:52
本帖最后由 zhouzhenghui 于 2014-04-20 13:55 编辑
不要拘泥于所谓的狭义的接口概念,接口本身跟类型是没有关系的,宏因为层次高,所以不受语言自身的约束,可能实现一些更加灵活的功能。
比如在C中实现一些类似于stl的数据结构,而不受c本身类型检查系统的约束,还有比如我使用宏实现c语言流程控制,
https://github.com/zhouzhenghui/c-sigslot
。
作者:
我爱CUnix
时间:
2014-04-20 18:21
boost,怎么还有boost?
这样可读性呢?
纯C的parallel 实现,给力
回复
2#
zhouzhenghui
作者:
zhouzhenghui
时间:
2014-04-20 19:54
可读性可能会受到一定的影响,但大多数情况接口差异可以做到很小,或者说接口保持清晰简洁也就够了。
其实,从实现角度来说,可读性跟表达语言有一定关系,但往往更多是和要表述问题本身以及阅读人有关,即便标准的c/c++代码,在不懂的人看来也无异一堆乱码,更别说模板实现之类看起来也是非常混乱的。而一旦把一些经常使用的模式固定下来,并被使用者和阅读者所熟悉,手段自身的复杂性的影响往往反而是次要的。
比如我代码中使用的是boost preprocessor部分,这是c兼容的预处理库,其中把基于宏的元编程谓词都标准化了,一旦理解了,对程序员而言会非常容易掌握。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2