如何使用const代替#define实现#include判断?

如何使用const代替#define实现#include判断?,c,C,a、 h b、 h 如何使用const而不是“define to realization”#include decision?“realizationincludedecision”的意思是“如果条件满足(或不满足?)则包含某些内容?”一般来说,你不能这样做。为了被预处理器识别,A必须通过#define或等效工具定义给预处理器。如果未定义A,预处理器将其视为0。如果你将A与2进行比较,你将无法包含“c.h”(需要引号或尖括号),除非A被定义为2(通过一些表达式-简单,例如,定义一个2,或迂回,例

a、 h

b、 h


如何使用const而不是“define to realization”#include decision?

“realization
include
decision”的意思是“如果条件满足(或不满足?)则包含某些内容?”一般来说,你不能这样做。为了被预处理器识别,
A
必须通过
#define
或等效工具定义给预处理器。如果未定义
A
,预处理器将其视为
0
。如果你将
A
2
进行比较,你将无法包含
“c.h”
(需要引号或尖括号),除非
A
被定义为
2
(通过一些表达式-简单,例如
,定义一个2
,或迂回,例如
,定义一个(2*3-8/2)
@Jonathan Leffler谢谢!我知道不能包括“c.h”然而,Const的定义是很多的,而不是定义的,而如果不同的平台有不同的头文件,那么,如果不能实现这个功能,C++就远远不能完全取代,而在特定的情况下,它是一个合适的替换。,其中#define在历史上曾被使用。这排除了预处理阶段的外观。这些文章要么拙劣和/或阅读不正确。预处理器和编译器之间存在明确的差异。请参考好书,或者至多参考标准。“实现
包括
判断”的含义“如果条件满足(或不满足?)则包括某些内容?“一般来说,您不能这样做。为了被预处理器识别,
A
必须通过
\define
或等效程序定义给预处理器。如果未定义
A
,预处理器会将其视为
0
。如果将
A
2
进行比较,您将无法包含
“c.h”
(需要引号或尖括号)除非
A
被定义为
2
(通过一些简单的表达,如
#定义一个2
,或迂回的表达,如
#定义一个(2*3-8/2)
@Jonathan Leffler谢谢!我知道不能包含“c.h”"然而,Const的定义是很多的,而不是定义的,而如果不同的平台有不同的头文件,那么,如果不能实现这个功能,C++就远远不能完全取代,而在特定的情况下,它是一个合适的替换。,其中历史上使用过#define。这不包括预处理阶段的外观。这些文章要么拙劣,要么阅读不正确。预处理器和编译器之间存在明确的差异。请查阅一本好书,或者最好是标准。
#define A 3
#if A == 2
#include c.h
#endif