C++中内联函数和宏定义的区别
1. 内联函数:
内联函数是由inline关键字定义的普通函数。内联函数是编译器展开的短小函数,其参数只计算一次。内联函数是自动成为内联函数,无需在类中使用inline关键字。
内联函数的语法:
内联函数示例:
输出:
2. 宏定义:
宏定义也称为预处理器指令。宏是由#define关键字定义的。在程序编译之前,预处理器检查程序,每当预处理器检测到宏时,就会用宏定义替换宏。
宏定义语法:
宏定义示例:
输出:
C++中内联函数和宏定义的区别:
序号 | 内联函数 | 宏 |
---|---|---|
1. | 内联函数通过 inline 关键字定义。 | 而宏通过 #define 关键字定义。 |
2. | 通过内联函数,可以访问类的数据成员。 | 而宏无法访问类的数据成员。 |
3. | 在内联函数中,程序可以很容易地进行调试。 | 而在宏中,程序调试不容易。 |
4. | 在内联中,参数仅计算一次。 | 而在宏中,每次使用宏时都要计算参数。 |
5. | 在C++中,内联可以在类内或类外定义。 | 而宏总是在程序开头定义。 |
6. | 在C++中,短长度函数会自动转换成内联函数。 | 而宏需要特别定义。 |
7. | 内联函数没有宏那么广泛地使用。 | 而宏使用广泛。 |
8. | 内联函数在竞赛编程中不常使用。 | 而宏在竞赛编程中非常常用。 |
9. | 内联函数以右花括号结尾。 | 而宏不以任何符号结尾,以换行符结束。 |