C++ 内联函数 inline
宏定义实现和普通函数实现:
- 宏定义是直接在实现的时候进行代码替换,可能产生结果异常问题。
- 普通函数实现:调用函数进出函数体的时候时间开销可能过大。
1 #include <iostream> 2 using namespace std; 3 //宏实现 4 #define GETMAX(a, b)((a) > (b) ? (a) : (b)) 5 //函数实现 6 int getMax(int a, int b) 7 { 8 return a > b ? a : b; 9 } 10 int main() 11 { 12 int n = 10; 13 int n1 = GETMAX(n, 2);//10 14 //int n1 = ((10) > (2) ? (10) : (20)); 15 int n2 = GETMAX(n++, 2);//11 16 //int n2 = ((10) > (2) ? (11) : (2)); 17 int i = 10; 18 int n3 = getMax(i, 2);//10 19 //return 10 > 2 ? 10 : 2 20 int n4 = getMax(i++, 2);//10 21 //return 10 > 2 ? 10 : 2 22 cout << n1 << endl; 23 cout << n2 << endl; 24 cout << n3 << endl; 25 cout << n4 << endl; 26 system("pause"); 27 return 0; 28 }
内联函数:一般是在当前项目的很多地方都要使用
1.inline是对编译器的建议(结合普通函数和宏定义):建议编译器将函数置为内联,编译器根据开销判断是使用函数还是宏定义。
一般会使用宏定义,函数体复杂或者Debug模式则使用普通函数调用。
2.debug版本没有inline,为了方便调试
3.内联函数必须写在头文件中
//inline.h inline int getMax(int a, int b) { return a > b ? a : b; }
Main.cpp
// Main.cpp #include "inline.h" xxx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)