C++ - 宏定义指令

标签 c++ macros

地址:http://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/

它提到了一个名为“宏定义”的指令。当我们说“”时,我们指的是什么?

谢谢。

最佳答案

宏是一个预处理器指令,它定义了一个名称,该名称将在编译前被预处理器替换(或删除)。

例子:

#define MY_MACRO1 somevalue
#define MY_MACRO2
#define SUM(a, b) (a + b)

然后,如果代码中的任何地方(字符串文字除外)提到了 MY_MACRO1MY_MACRO2,预处理器会将其替换为名称后面的任何内容#define 行。

也可以有带有参数的宏(比如 SUM)。在这种情况下,预处理器会识别参数,例如:

int x = 1, y = 2;
int z = SUM(x, y);

预处理器像这样替换:

int x = 1, y = 2;
int z = (x + y);

只有在这个替换之后,编译器才能编译生成的代码。

关于C++ - 宏定义指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766951/

相关文章:

c++ - 通过类的模板参数特化成员模板结构

c++ - 播放音乐时如何避免微延迟?

c++ - 将 Google C++ 测试框架与 CMake 结合使用的最简单示例

c++ - 我可以将 std::ostream& 传递给需要 std::ofstream 的函数吗

c++ - 在编译时将字符串转换为大写

c++ - bool 在位域定义中安全吗?

c - 下面的c定义的语法是什么?

c - 停止 bool 的宏扩展

C# GUI 宏库或通用方法?

c - 为什么要将静态函数替换为类对象宏#define STATIC static?