1.define
1.定义在预编译时处理的宏,只是简单的字符串替换,没有类型检查
2.inline
1.用来定义一个内联函数,引用inline的主要原因是用它替换C语言中表示式形式的宏定义;
2.在编译阶段完成;
3.内联函数会做类型安全检查;
4.内联函数是嵌入式代码,调用内联函数时,不是跳转到内联函数执行,而是把内联函数的代码直接写到调用位置。
5.inline函数仅用于短小的函数(逻辑不复杂,且一般小于10行的函数),可以提升一定的效率,和宏相比,inline函数更加安全可靠。
6.缺点:增加了内存空间的消耗;
3.定义的内联函数只是给编译器一个建议,但是最后的决定权取决于编译器,如果内联函数的逻辑比较复杂(有循环或者递归之类),此时会内联失败。