1. 内联:
内联函数是由以下定义的普通函数排队关键词。内联函数是由编译器扩展的短函数。并且它的参数仅被评估一次。内联函数是自动成为内联函数的短长度函数,无需使用排队类内的关键字。
内联函数的语法:
inline return_type function_name ( parameters ) { // inline function code }
内联函数的示例:
#include <iostream>
using namespace std;
// Inline function
inline int Maximum(int a, int b)
{
return (a > b) ? a : b;
}
// Main function for the program
int main()
{
cout << "Max (100, 1000):" << Maximum(100, 1000) << endl;
cout << "Max (20, 0): " << Maximum(20, 0) << endl;
return 0;
}
输出:
Max (100, 1000): 1000 Max (20, 0): 20
2、宏:
它也被称为预处理器指令。宏定义为#定义关键词。在程序编译之前,只要预处理器检测到宏,预处理器就会检查程序,然后预处理器用宏定义替换宏。
宏的语法:
#define MACRO_NAME Macro_definition
宏示例:
#include <iostream>
using namespace std;
// macro with parameter
#define MAXIMUM(a, b) (a > b) ? a : b
// Main function for the program
int main()
{
cout << "Max (100, 1000):";
int k = MAXIMUM(100, 1000);
cout << k << endl;
cout << "Max (20, 0):";
int k1 = MAXIMUM(20, 0);
cout << k1;
return 0;
}
输出:
Max (100, 1000):1000 Max (20, 0):20
C++中内联和宏的区别:
S.NO | 排队 | 宏 |
---|---|---|
1. | 内联函数定义为排队关键词。 | 而宏是由#定义关键词。 |
2. | 通过内联函数,可以访问类的数据成员。 | 而宏无法访问类的数据成员。 |
3. | 在内联函数的情况下,可以方便地调试程序。 | 而在宏的情况下,程序不容易调试。 |
4. | 在内联的情况下,参数仅计算一次。 | 而在宏的情况下,每次在程序中使用宏时都会对参数进行求值。 |
5. | 在 C++ 中,内联可以定义在类内部或类外部。 | 而宏始终是在程序开头定义的。 |
6. | 在 C++ 中,在类内部,短长度函数会自动成为内联函数。 | 而宏是专门定义的。 |
7. | 内联不像宏那样广泛使用。 | 而宏则被广泛使用。 |
8. | 内联不用于竞争性编程。 | 而宏在竞技编程中使用得非常多。 |
9. | 内联函数由末尾的大括号终止。 | 虽然宏不以任何符号终止,但它以换行符终止。 |
相关用法
- C++ Inline和Normal的区别用法及代码示例
- C++内联函数用法及代码示例
- C++ Integer转String用法及代码示例
- C++ Iswctype()用法及代码示例
- C++ INT_MAX用法及代码示例
- C++ INT_MIN用法及代码示例
- C++ Implementing of strtok()用法及代码示例
- C++ Iterators和Pointers的区别用法及代码示例
- C++ cos()用法及代码示例
- C++ sin()用法及代码示例
- C++ asin()用法及代码示例
- C++ atan()用法及代码示例
- C++ atan2()用法及代码示例
- C++ acos()用法及代码示例
- C++ tan()用法及代码示例
- C++ sinh()用法及代码示例
- C++ ceil()用法及代码示例
- C++ tanh()用法及代码示例
- C++ fmod()用法及代码示例
- C++ acosh()用法及代码示例
- C++ asinh()用法及代码示例
- C++ floor()用法及代码示例
- C++ atanh()用法及代码示例
- C++ log()用法及代码示例
- C++ trunc()用法及代码示例
注:本文由纯净天空筛选整理自MKS075大神的英文原创作品 Difference between Inline and Macro in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。