C++ 预处理器指令;使用;
根据我以前学习C的知识,我知道像C++ 预处理器指令;使用;,c++,c-preprocessor,preprocessor-directive,C++,C Preprocessor,Preprocessor Directive,根据我以前学习C的知识,我知道像#include,#define这样的预处理器指令不是一个语句,这就是为什么顾名思义,它是在编译程序之前的过程,因此我们不需要附加在它的末尾 在C++中,它使用引入了一个新的指令,即,但是为什么这个指令附加分号?我想这就像我之前学习的指令一样,它不是一个语句。使用不是一个预处理器指令。它由编译器本身查看和分析 事实上,你经常不放一个是因为它们被预处理器处理为“简单”文本替换,例如: #define SOMETHING "abcd"; ... if (str
#include
,#define
这样的预处理器指令不是一个语句,这就是为什么顾名思义,它是在编译程序之前的过程,因此我们不需要附加代码>在它的末尾
<>在C++中,它使用引入了一个新的指令,即<代码>,但是为什么这个指令附加分号?我想这就像我之前学习的指令一样,它不是一个语句。使用
不是一个预处理器指令。它由编译器本身查看和分析
事实上,你经常不放一个在#define
宏末尾的code>是因为它们被预处理器处理为“简单”文本替换,例如:
#define SOMETHING "abcd";
...
if (strcmp(thing, SOMETHING) == 0) { ... }
...
将是编译器错误,因为编译器将看到:
if (strcmp(thing, "abcd";) == 0) { ... }
// ^ invalid here
使用
不是预处理器指令。它由编译器本身查看和分析
事实上,你经常不放一个在#define
宏末尾的code>是因为它们被预处理器处理为“简单”文本替换,例如:
#define SOMETHING "abcd";
...
if (strcmp(thing, SOMETHING) == 0) { ... }
...
将是编译器错误,因为编译器将看到:
if (strcmp(thing, "abcd";) == 0) { ... }
// ^ invalid here
使用
可以被认为是一种声明,例如typedef
是
您可以要求编译器输出预处理的结果,例如,使用g++-C-e
,但是没有简单的方法要求它输出使用的效果。使用可以被认为是一种声明,例如typedef
是
您可以要求编译器输出预处理的结果,例如使用g++-C-e
,但没有简单的方法要求它使用输出的效果