微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

宏与内联

如何解决宏与内联

  1. 有人可以用示例解释内联函数和宏之间的区别吗?

  2. 什么时候应使用?

  3. 是否正确地说宏也是内联的(真/假)

尽管Macro和Inline有很多答案,但是我对这些问题仍不清楚。

解决方法

  1. 内联函数是函数。它们仅具有一个附加的inline属性,以提示编译器内联这些函数作为优化可能会很好。据说编译器甚至可能不会听。从您的角度来看,内联函数等于100%。这是编译器的一种优化技术。
    宏是代码生成模板。您定义一个模板,例如#define ADD_ONE(x) x = x + 1;,预处理器(而不是编译器)将简单地用模板字符串替换这些字符串。宏的意思是“字符串替换”(有一些规则)。
  2. 宏应该是您的最后选择。当您以其他方式重复不需要重复的代码时,请使用它们。
  3. 是非。宏只是字符串替换。因此代码是内联的。内联函数可能不是内联的(请参阅#1),因此它们不是“也”内联的。我应该添加内联代码,这意味着在运行该代码时不会进行任何函数调用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。