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

标签 c performance function replace macros

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

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

感谢您的宝贵时间。

编辑:正如这里许多人指出的那样,这项任务的目标对于代码质量甚至在某些情况下的效率来说是适得其反的。

最佳答案

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

类函数宏通常仅在处理编译时问题(例如常量、标识符、声明等)时才有意义。

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

关于c - 什么时候可以用宏替换C中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789010/

相关文章:

c - 在 C 中使用 malloc() 的主要原因是什么

javascript - 简单的查找和更新记录功能......我无法工作

c - snprintf 缓冲区大小的负/零值

c++ - C 和 C++ 的效率

android - adapter.setHasStableIds(true) 为什么 RecyclerView 默认不启用?

javascript - 如何更快地索引 Javascript 中的对象数组?

R:行名、列名、暗号和名称适用

javascript - 递归requestAnimationFrame() javascript循环直接跳到最后

c - 是否有任何用于绘制图片和制作.jpg 文件的C 库?

c++ - 如果我使用 scanf 程序终止