【发布时间】:2009-10-24 03:05:12
【问题描述】:
今天晚上我正在阅读一些用 C 编写的代码,并且在顶部 该文件是类似函数的宏 HASH:
#define HASH(fp) (((unsigned long)fp)%NHASH)
这让我想知道,为什么有人会选择实施 以这种方式使用类似函数的宏而不是实现 它是一个普通的普通 C 函数吗?有什么优点和 每个实现的缺点?
非常感谢!
【问题讨论】:
-
随着散列函数的使用,这是非常微弱的 - 但是,它必须处理的数据似乎也非常简单。
-
其实把这个做成
macro也不是很亮眼。 inline static function 可能更合适。 C 自 1999 年以来就有内联,甚至在此之前就有gcc。这个问题被引用为重复kfifo use of defines。如果 MS-Windows 是人们说这个宏合理的原因,那么它们之间有什么关系?
标签: c function c-preprocessor