【发布时间】:2018-11-14 10:45:08
【问题描述】:
假设我有一个 c 头文件 test.h
// test.h
#ifdef A
int a;
#else
int b;
#endif
现在假设我想以这样一种方式构建我的代码,即如果定义了 B,则同时定义 a 和 b。
有没有更聪明的方法,而不是:
// test.h
#ifndef B
#ifdef A
int a;
#else
int b;
#endif
#else
int a;
int b;
#endif
?
谢谢
【问题讨论】:
-
与您的问题无关,但不要在头文件中定义变量,只需声明它们。此外,应避免使用全局变量。
-
我知道这一点,但我只是想让示例尽可能简单。考虑到 a 和 b 可以是 wathever 代码。我编辑了问题
-
一旦您有一个或多个答案,请不要对您的问题进行大量编辑,因为这会使现有答案无效。
-
没有看到你的答案。对不起
-
虽然有时需要条件编译,但应尽可能减少。通常有更好的方法来做事,但是您的示例有点过于抽象,无法提供更好的解决方法。对我来说,这似乎是 XY 问题。
标签: c c-preprocessor conditional-compilation