小编0x4*_*121的帖子

用于启用和禁用代码功能的 C 宏

我之前使用过一个代码库,它有一个用于启用和禁用代码部分的宏系统。它看起来像下面这样:

#define IN_USE      X
#define NOT_IN_USE  _

#if defined( WIN32 )
    #define FEATURE_A       IN_USE
    #define FEATURE_B       IN_USE
    #define FEATURE_C       NOT_IN_USE
#elif defined( OSX )
    #define FEATURE_A       NOT_IN_USE
    #define FEATURE_B       NOT_IN_USE
    #define FEATURE_C       IN_USE
#else
    #define FEATURE_A       NOT_IN_USE
    #define FEATURE_B       NOT_IN_USE
    #define FEATURE_C       NOT_IN_USE
#endif
Run Code Online (Sandbox Code Playgroud)

然后功能的代码将如下所示:

void DoFeatures()
{
#if USING( FEATURE_A )
    // Feature A code...
#endif

#if USING( FEATURE_B )
    // Feature B code...
#endif

#if USING( FEATURE_C )
    // Feature C code...
#endif

#if USING( FEATURE_D ) // …
Run Code Online (Sandbox Code Playgroud)

c c++ macros c-preprocessor preprocessor-directive

1
推荐指数
1
解决办法
8715
查看次数

标签 统计

c ×1

c++ ×1

c-preprocessor ×1

macros ×1

preprocessor-directive ×1