3)宏定义使用参数时,是严格的替换策略,无论你得参数时是何种形式,在展开代码中都是用形参数代替实参,这样,宏定义很容易产生二义性,它的使用就存在一系列的隐患 二.内联函数:inline 1.内联函数的介绍: 内联函数从源代码层看,有函数结构,而在编译后,却不具备函数性质,内联函数不是在调用时发生控制转移,而是...
不同点: 1.内联函数的调用是传参,宏定义只是简单的文本替换 2.内联函数可以在程序运行时调用,宏定义是在程序编译进行 3.内联函数有类型检测更加的安全,宏定义没有类型检测 4.内联函数在运行时可调式,宏定义不可以 5.内联函数可以访问类的成员变量,宏不可以 6.类中的成员函数是默认的内联函数...
宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的 内联函数有类型检测、语法判断等功能,而宏没有; inline函数是函数,宏不是; 对于短小的函数来说,inline函数可以得到一定效率的提升,和c的宏函数相比,inline函数更加安全可靠,这个是以增加空间的消耗为代价的。
1.内联函数的调用是传参,宏定义只是简单的文本替换 2.内联函数可以在程序运行时调用,宏定义是在程序编译进行 3.内联函数有类型检测更加的安全,宏定义没有类型检测 4.内联函数在运行时可调式,宏定义不可以 5.内联函数可以访问类的成员变量,宏不可以 6.类中的成员函数是默认的内联函数 以上内容参考《C++primer...
宏(#define)和内联函数(inline)的理解以及区别: 宏 缺点: 1.宏没有类型检测,不安全 2.宏是在预处理时进行简单文本替换,并不是简单的参数传递(很难处理一些特定情况。例如:Add(z++)) 3.使代码变长 4.宏…
``` 1 宏定义在预编译的时候进行字符串替换。内联函数在编译的时候进行函数展开。 2 宏定义没有类型检查。内联函数会进行参数列表、返回值等类型检查。 ```