c++ - 什么是内联函数?

标签 c++

<分区>

Possible Duplicate:
Inline functions vs Preprocessor macros

内联函数有什么用,它是如何工作的? 内联和宏是否不同?

最佳答案

内联函数以与函数相同的方式计算它的参数(或者至少您可以这样想)。这可以防止发生典型的宏错误。另一方面,通过声明一个函数是内联的,您暗示编译器避免函数调用,而只是将指令插入代码中(就像宏一样)。

所以简而言之,它比宏更安全,但只是对编译器的提示。编译器不会被迫避免函数调用(至少如果我没记错的话)。

顺便说一句,“典型的宏错误”示例:

#define SQUARE(a) (a*a)

int x = 10;
int square = SQUARE(++x); // this turns out to be 11 * 12, instead of 11 * 11

内联函数会执行 11 * 11。

关于c++ - 什么是内联函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793139/

相关文章:

python - 无法加载 Boost.Python 模块 - undefined symbol

c++ - Bison 中的 std::shared_ptr 导致成员错误

c++ - 我需要 MFC 自动创建的 CShellManager 吗?

c++ - 当使用特定的枚举标识符时,打印出带有建议更正的静态 "deprecate"警告消息?

c++ - 使用 C++ 上传草图

c++ - 从 `std::chrono::system_clock::now().time_since_epoch()` 开始的时间从哪里来,如果从多个线程访问它会阻塞吗?

C++ typedef 重命名函数

c++ - Qt:RemoveWidget和对象删除

c++ - 语法错误 : identifier `MercedesFactory` ?

c++ - 包含链表的链表给出堆损坏错误 : Why?