Redis源码中带参数的宏定义实现函数的调用功能

Redis源码中带参数的宏定义实现函数的调用功能

在看Redis的源码中,有很多地方使用带参数的宏定义来替代了函数的定义。
带参数的宏定义
优点:在程序进行函数的调用时要进行现场的保护,执行完成后要进行现场的恢复,如果函数中的操作比较多,则现场的保护和恢复可以忽略,但是如果函数中的操作较少(例如获得链表的长度,获得哈希表中哈希结点的个数等),在调用函数中进行的现场保护和恢复的操作就显得相对较多。可以使用带参数的宏定义来避免这个缺点。
缺点:因为在预处理阶段进行了展开,但是会导致目标代码空间变大。
所以要在带参数的宏定义和函数的调用之间进行合理的选择。

发布了46 篇原创文章 · 获赞 19 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/li123_123_/article/details/100160699