没有参数类型检查,不安全;而内联函数是真正的函数,有类型检查,更为安全 4.宏在定义时要注意参数,...
1、内联函数相比较于宏而言,内联函数要做参数类型检查,从而内联函数相比宏而言更加安全。 2、内联函数在运行时可调试,而宏定义不可以。
编译时间点:宏函数在预处理阶段被展开,而内联函数在编译阶段被展开。 类型检查:宏函数没有类型检查,而内联函数在编译阶段进行类型检查。 作用域:宏函数在展开时直接替换,没有作用域限制,而内联函数的作用域受到函数定义的限制。 宏函数可能存在副作用:宏函数在展开时可能会产生副作用,例如宏函数中的参数可能会被...
内联函数本质上是一个函数,内联函数一般用于函数体的代码比较简单的函数,不能包含复杂的控制语句,while、switch,并且内联函数本身不能直接调用自身。 编译实现: 宏函数是在预编译的时候把所有的宏名用宏体来替换,简单的说就是字符串替换; 内联函数是在编译的时候进行代码插入,编译器会在每处调用内联函数的地方直...
内联函数生成的代码会更接近源代码,因此更容易进行调试。 代码体积: 宏函数在文本替换时可能会生成冗...
1.内联函数的调用是传参,宏定义只是简单的文本替换 2.内联函数可以在程序运行时调用,宏定义是在程序编译进行 3.内联函数有类型检测更加的安全,宏定义没有类型检测 4.内联函数在运行时可调式,宏定义不可以 5.内联函数可以访问类的成员变量,宏不可以 ...
1.宏(#define)和内联函数(inline)的理解以及区别:宏 缺点: 1.宏没有类型检测,不安全 2.宏是在预处理时进行简单文本替换,并不是简单的参数传递(很难处理一些特定情况。例如:Add(z++)) 3.使代码变长 …
宏定义和内联函数都是代码优化的方式,但是它们的实现方式和使用方法有所不同。下面是宏定义和内联函数的区别:1、实现方式不同 宏定义是一种简单的文本替换方式,编译器将会把代码中的宏定义直接替换成宏定义的值。而内联函数是一种函数调用的优化方式,编译器会将内联函数的代码直接插入到调用该函数的代码中。...
C++中内联函数和宏定义的区别 1. 内联函数: 内联函数是由inline关键字定义的普通函数。内联函数是编译器展开的短小函数,其参数只计算一次。内联函数是自动成为内联函数,无需在类中使用inline关键字。 内联函数的语法: inline返回类型 函数名(参数){// 内联函数代码} ...