当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Inline和Macro的区别用法及代码示例


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. 内联函数由末尾的大括号终止。 虽然宏不以任何符号终止,但它以换行符终止。


相关用法


注:本文由纯净天空筛选整理自MKS075大神的英文原创作品 Difference between Inline and Macro in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。