什么时候可以用宏替换C中的函数?

时间:2016-01-14 11:54:40

标签: c performance function replace macros

作为赋值的一部分,我被要求在C中实现一个简单函数列表,并且出于运行时效率的原因,尽可能用宏替换这些函数。

是否有一般规则可以帮助我确定是否可以用宏替换C中的简单函数?为什么这种替换能够优化运行时效率?

感谢您的时间。

编辑:正如许多人在这里指出的那样,这项任务的目标在某些情况下会对代码质量甚至效率产生反作用。

1 个答案:

答案 0 :(得分:3)

唯一的一般规则是:尽可能避免使用类似函数的宏,因为它们通常不可读和/或不安全。你应该尽可能使用函数。

类似函数的宏通常只在处理常量,标识符,声明等编译时问题时才有意义。

为了性能而用宏替换函数不是你应该考虑的事情。大约20年前,它曾经是因为当时编译器在优化代码方面非常糟糕,程序员比编译器做得更好。现在它是另一种方式,将这些东西留给编译器。