C++学习--内联函数

宏 可以做两件事情:1、定义常量 2、定义函数
#define A 10
#define ADD(x,y) (x+y)

C++ 建议用:
1、const 替换宏常量
2、用 内联函数 替换宏函数

内联函数定义:在函数定义前加 inline 关键字 注意:在声明前加无效
宏函数是在预处理期间进行处理
内联函数在编译进行处理,具备普通函数的相应功能 参数检查 类型检查。。

函数运行是有开销的:入栈、出栈、跳转等开销

1、内联函数在执行用函数体进行替换,
2、内联是一种请求,不一定成功
3、编译完后的程序中不存在函数体

注意事项:
1、函数体不能太庞大,5行以下
2、不能有循环语句
3、不能有复杂的条件判断语句
4、不能对内联函数进行取地址操作  ===>  没有函数体

#include <stdio.h>

// 宏 可以做两件事情:1、定义常量 2、定义函数
#define A 10
#define ADD(x,y) (x+y)

// C++ 建议用:
// 1、const 替换宏常量
// 2、用 内联函数 替换宏函数

// 内联函数定义:在函数定义前加 inline 关键字 注意:在声明前加无效
// 宏函数是在预处理期间进行处理
// 内联函数在编译进行处理,具备普通函数的相应功能 参数检查 类型检查。。

// 函数运行是有开销的:入栈、出栈、跳转等开销

// 1、内联函数在执行用函数体进行替换,
// 2、内联是一种请求,不一定成功
// 3、编译完后的程序中不存在函数体

// 注意事项:
// 1、函数体不能太庞大,5行以下
// 2、不能有循环语句
// 3、不能有复杂的条件判断语句
// 4、不能对内联函数进行取地址操作  ===>  没有函数体

// 实现机制:在符号表中进行实现
inline int add(int a, int b)
{
	return a + b;
}

int main()
{
	printf ("%d\n", ADD(1,2));
	printf ("%d\n", add(1,2));
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/ls_dashang/article/details/82975888