预处理器指令"使用"

car*_*995 0 c++ c-preprocessor preprocessor-directive

我以前在学习知识Ç,我知道预处理指令一样#include,#define是不是这就是为什么顾名思义,它是过程编译程序之前的声明,因此没有必要为我们追加;在结束它.

在C++中,它向我介绍了一个新的指令using,但为什么这个指令会附加一个分号?我认为这就像我之前的指令,我知道它不是一个声明?

Mat*_*Mat 5

using不是预处理器指令.它由编译器正确看待和分析.

您经常不在宏;的末尾放置的事实#define是因为它们被预处理器处理为"简单"文本替换,例如:

#define SOMETHING "abcd";

...
   if (strcmp(thing, SOMETHING) == 0) { ... }
...
Run Code Online (Sandbox Code Playgroud)

将是编译器错误,因为编译器会看到:

   if (strcmp(thing, "abcd";) == 0) { ... }
                       //  ^ invalid here
Run Code Online (Sandbox Code Playgroud)