条件定义静态变量

时间:2015-12-24 11:10:06

标签: c static macros conditional c-preprocessor

寻找一种制作条件静态声明的方法。 我想在我的程序中创建一些变量,在发布时进行编译,并在调试时进行全局测试。 因为我不希望我的所有静态变量在调试时都变为全局,所以我想也许我可以根据编译标志做一个定义变量static的宏。我想要这样的东西:

#define STATIC(def) (def) ? : static

可以这样做吗? 使用C标准89

1 个答案:

答案 0 :(得分:3)

如何使用预处理器#if?你可以这样做:

#if YOUR_CONDITION
#define STATIC(def) static def
#else
#define STATIC(def) def
#endif

您可以使用#ifdef#ifndef

#ifdef DEBUG_MODE /*Define as static when DEBUG_MODE is defined*/
#define STATIC(def) static def
#else
#define STATIC(def) def
#endif