面试真题

C++ · 简单 · 领跑科技

内联函数定义与宏定义的区别?

简单 C++ 🎤 领跑科技
参考答案
结论:内联函数是编译期展开的有类型检查的函数,宏是预处理期纯文本替换且无类型安全。区别要点:1.类型安全:内联函数参数有类型,编译器校验;宏仅文本替换,易因优先级出错(如#define SQUARE(x) x*x,SQUARE(1+2)展开为1+2*1+2=5);2.调试与符号:内联函数可调试、有作用域和重载;宏无调试信息且全局生效;3.展开控制:内联由编译器决定是否真正展开,宏强制替换;4.副作用:宏参数若含自增等副作用会多次计算。示例:inline int square(int x){return x*x;} 调用square(1+2)正确得9。
题目整理自公开面经,答案由校招宝自研生成,仅供参考