基于 #define 的代码的两个版本
Two versions of a code based on a #define
我正在使用微控制器并使用 C/C++ 进行编写,我想将只适用于发射器的内容与适用于接收器的内容分开。为此,我考虑过将 #define DEVICE 0
设为 0 表示发射器,1 表示接收器。
我如何使用这个定义来取消其他定义?我有多个定义只能在其中一个设备上工作。
您有以下指令:
#if (DEVICE == 0)
...
#else
...
#endif
确保代码是独占的。
尽管我建议动态执行:您可以有一个布尔型全局 attribute/function 参数并根据其值执行代码。
- 代码将在特定目标上 optimized-out(即使使用最低的优化设置)。
- 一次编译就足以检查编译错误,而不是 2 次定义更改。
请记住,您仍然需要为要更改的布尔值定义一个定义,因此要测试每种情况,但这可以通过任何动态代码分析自动完成,而使用
#define
实现是不可能的。
我正在使用微控制器并使用 C/C++ 进行编写,我想将只适用于发射器的内容与适用于接收器的内容分开。为此,我考虑过将 #define DEVICE 0
设为 0 表示发射器,1 表示接收器。
我如何使用这个定义来取消其他定义?我有多个定义只能在其中一个设备上工作。
您有以下指令:
#if (DEVICE == 0)
...
#else
...
#endif
确保代码是独占的。
尽管我建议动态执行:您可以有一个布尔型全局 attribute/function 参数并根据其值执行代码。
- 代码将在特定目标上 optimized-out(即使使用最低的优化设置)。
- 一次编译就足以检查编译错误,而不是 2 次定义更改。
请记住,您仍然需要为要更改的布尔值定义一个定义,因此要测试每种情况,但这可以通过任何动态代码分析自动完成,而使用
#define
实现是不可能的。