1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。 文章(一) 内联函数...
二、内联函数和宏区别 1、宏定义 2、内联函数 3、内联和宏对比 三、内联函数和普通函数 1、普通函数调用过程 2、内联函数调用过程 3、普通函数和内联函数对比 四、总结 一、什么是内联函数内联关键字是inline,用于修饰函数,内联函数的实现需要用inline关键字修饰,内联函数的函数声明不需要加inline关键字,只在...
如果函功能比较简单,有时候就会出现函数调用的开销比执行函数功能所消耗的时间还长。为了优化程序的性能,使用宏函数就是一个非常好的选择,省去了函数调用时的各种开销,又能像函数一样通过使用宏名和参数来简化复杂表达式。内联函数 通过之前的几个例子,我们会发现宏函数最大的问题就是只能“简单粗暴的文本替换”...
C/C++之宏、内联函数和普通函数的区别 内联函数的执行过程与带参数宏定义很相似,但参数的处理不同。带参数的宏定义并不对参数进行运算,而是直接替换;内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算求值,然后把表达式的值传递给形式参数。 内联函数与带参数宏定义...
内联函数的优点是:执行速度快,因为避免了函数调用的开销;代码简洁,因为避免了函数调用,从而减少了程序的复杂度。但它也有缺点:代码膨胀,即将函数代码嵌入到调用方代码中可能会增大程序的体积;可读性差,因为函数代码被嵌入到调用方代码中,可能会影响代码的可读性。二、宏定义函数 宏定义函数是通过#define关键字...
三,宏定义和内联函数的差别 宏不是函数,只是在编译前(编译预处理阶段),将程序中有关字符串不加任何验证的简单替代为宏体。 内联函数是函数,在编译阶段,将有关代码嵌入到调用处,不需要中断调用函数,加快速度,但是增加了空间开销。
1.内联函数的调用是传参,宏定义只是简单的文本替换 2.内联函数可以在程序运行时调用,宏定义是在程序编译进行 3.内联函数有类型检测更加的安全,宏定义没有类型检测 4.内联函数在运行时可调式,宏定义不可以 5.内联函数可以访问类的成员变量,宏不可以 ...
类型检查:宏没有类型检查,而内联函数有。 语法:宏使用 #define 关键字定义,而内联函数使用 inline 关键字定义。 作用时间:宏在预处理阶段进行文本替换,而内联函数在编译阶段进行类型检查和可能的替换。 可调试性:由于宏是文本替换,所以调试宏可能比调试内联函数更加困难。
三、内联函数与宏 前面讲到可以与宏函数做类比,那么就纳闷了,为什么不直接定义一个宏,而是定义一个内联函数?存在即合理,自然有它存在的道理,相对于宏,内联函数提供了更好的方法: 参数类型检查。编译过程中,宏调用并不执行类型检查,甚至连正常参数也不检查,内联函数虽然具有宏的展开特性,但其本质仍是函数,编译器...