C++ 内联函数与#定义

C++ 内联函数与#定义,c++,inline,C++,Inline,可能重复: C++中,内联函数限定符基本上将函数替换为一个定义指令,而不是使函数反复调用。从而减少了开销时间,但同时增加了程序大小 如果我对内联函数的理解是正确的,那么内联函数和#define函数有什么不同? inline只是一个提示,编译器可以随意忽略它 #define不是编译器级功能,它们是替换,而不是函数 为了在一个宏中安全地放置多个语句,必须在(0)时将其包装在do{…}中 宏的参数在每次使用时都会重新计算 宏可以访问调用方作用域中的名称

可能重复:

C++中,内联函数限定符基本上将函数替换为一个定义指令,而不是使函数反复调用。从而减少了开销时间,但同时增加了程序大小

如果我对内联函数的理解是正确的,那么内联函数和#define函数有什么不同?

  • inline
    只是一个提示,编译器可以随意忽略它

  • #define
    不是编译器级功能,它们是替换,而不是函数

    • 为了在一个宏中安全地放置多个语句,必须在(0)时将其包装在
      do{…}中
    • 宏的参数在每次使用时都会重新计算
    • 宏可以访问调用方作用域中的名称