1)内联函数在编译时展开,宏在预编译时展开; 2)内联函数直接嵌入到目标代码中,宏是简单的做文本替换; 3)内联函数有类型检测、语法判断等功能,而宏没有; 4)inline函数是函数,宏不是; 5)宏定义时要注意书写(参数要括起来)否则容易出现歧义,内联函数不会产生歧义;...
3)inline关键字只是对编译器的一个定义,如果函数本地不符合内联函数的标准,编译器就会将这个函数当作是普通函数 3.内联函数的缺点: 1)因为内联函数是在调用处展开,所以会使代码边长,占用更多内存 三.内联函数和宏定义的主要区别: 1)内联函数在运行时可调试,而宏定义不可以 2)编译器会对内联函数的参数类型做...
内联(inline)函数 内联函数会在它被调用的位置上展开,这一点表现的和 define 宏定义是非常相似的。展开是指内联函数的C语言代码会在其被调用处展开,这么看来,内联函数的“调用”应该加上引号,因为系统在“调用”内联函数时,无需再在为被调用函数做申请栈帧和回收栈帧的工作,即少了普通函数的调用开销,C语言程...
1宏定义在预编译的时候进行字符串替换。内联函数在编译的时候进行函数展开。2宏定义没有类型检查。内联函数会进行参数列表、返回值等类型检查。
inline函数是C++引入的机制,目的是解决使用宏定义的一些缺点。 内联函数与宏定义区别 (1)内联函数在编译时展开,宏在预编译时展开; (2)内联函数直接嵌入到目标代码中,宏是简单的做文本替换; (3)内联函数有类型检测、语法判断等功能,宏没有; (4)inline函数是函数,宏不是; ...