内联函数

inline内联函数和宏的区别

1、内联函数在编译时展开,而宏在预编译时展开 2、在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换。 3、内联函数可以进行诸如类型安全检查、语句是否正确等编译功能,宏不具有这样的功能。 4、宏不是函数,而inline是函数 5、宏在定义时要小心处理宏参数,一般用括号括起来,否则容易出现二义性。而内联函数不会出现二义性。...

C语言预处理理论-宏定义2

宏定义21、带参宏和带参函数的区别(1)宏定义是在预处理期间处理的,而函数是在编译期间处理的。这个区别带来的实质差异是:宏定义最终是在调用宏的地方把宏体原地展开,而函数是在调用函数处跳转到函数中去执行,执行完后再跳转回来。注:宏定义和函数最大差别就是:宏定义是原地展开,因此没有调用开销;而函数是跳转执行再返回,因此函数有比较大的调用开销。所以宏定义和函数相...

C++中的头文件和源文件

一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文...

内联函数的声明和定义

一、什么叫inline函数? inline(小心,不是online),翻译成“内联”或“内嵌”。意指:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。(函数的调用过程,由于有前面所说的参数入栈等操作,所以总要多占用一些时间)。这样做的不好处:由于每当代码...

C++之INL文件的使用

#ifndefBASECLASS_H #defineBASECLASS_H #include<iostream> usingnamespacestd; classBaseClass { public: BaseClass(); voidinlineFun(); }; #include"BaseClass.INL" // 引入文件和下面这...