C++内联函数使用说明(宏定义区别)


内联函数是以 inline关键字修饰的的函数,编译时 C++会在调用内联函数的地方展开,没有函数压栈的开销,是一种 空间换时间的提升程序运行效率的方法。

内联函数调用规则

1.内联函数是一种建议,编译器自动优化,选择某含有inline关键词的函数是否会当做内联函数使用。定义为inline的函数体有递归或循环,编译器默认忽略内联。 一般函数代码少,频繁调用的会当做内联函数。

内联函数注意事项

2.内联函数不建议定义和声明分离,在链接时会报错。编译器在链接时找不到内联函数的地址。如下:

//pt.h
#include <iostream>
using namespace std;
inline void pt(int i);
// pt.cpp
#include "pt.h"
void pt(int i)
{
    
    
	cout << hello << endl;
}
// main.cpp
#include "pt.h"
int main()
{
    
    
	pt(10);
	return 0;
}

在这里插入图片描述

内联函数和宏定义差别

3.内联函数和宏大致一样,都是替换,只不过内联函数更安全,多了语法,类型检查。内联函数本质是函数。
在这里插入图片描述

在这里插入图片描述
是因为宏是最简单的替换:
除非:
在这里插入图片描述

增加括号虽然有用,但面对复杂的就要自己编写更复杂的逻辑。
我们用内联函数看:
在这里插入图片描述一步到位。所以内联函数比宏更好用。

猜你喜欢

转载自blog.csdn.net/zhaocx111222333/article/details/113638553