C++学习--内联函数
程序员文章站
2024-03-20 22:32:58
...
宏 可以做两件事情: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;
}
上一篇: C++之宏函数和内联函数