重新定义C中的常量

mug*_*tsu 1 c

如果我在头文件中定义了这样的常量:

#define MY_CONSTANT 1
Run Code Online (Sandbox Code Playgroud)

我在整个项目中都包含一个库,其中包含针对相同常量的不同定义:

#define MY_CONSTANT 0
Run Code Online (Sandbox Code Playgroud)

我在编译时自然会遇到冲突。假设我不能更改我的项目代码,而我只能更改我的库代码,我该怎么做以使我的lib定义MY_CONSTANT?

编辑:只是为了澄清,我的目标是通过库更新代码中的常量。因为我正在编写一个用于模拟硬件功能的库,所以必须遵循以下规则:软件本身必须保持不变。主文件中存在一个使用常量的排序循环。我需要更改此常量,但无需在主文件中实际更改它。

MBy*_*ByD 5

您可以取消定义其他定义

#ifdef MY_CONSTANT
#undef MY_CONSTANT
#endif
#define MYCONSTANT 0
Run Code Online (Sandbox Code Playgroud)

另外,您还应删除=;

如前所述,PS不会更改已经编译的代码。