笔试题(8)
宏和inline的区别?
1. inline函数和宏都是在程序出现的地方展开,不是通过函数调用实现的。
2. 宏展开的时间和inline函数不同,inline函数是在编译期间完成展开,宏是在预编译间展开,如果从宏观上看,可以认为是在编译期间展开。
3. inline函数可以在编译期间要对参数类型进行检测,宏不进行检测
4. inline可以不展开,宏一定要展开。因为inline指示对编译器来说,只是一个建议,编译器可以选择忽略该建议,不对该函数进行展开。
5. inline可以有正规的返回值,宏不行。