当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

条件编译 预处理指令

语法

#if condition | #ifdef name | #ifndef name
    ...
{#elif condition
    ...}
{#elif condition
    ...}
{#else
    ...}
#endif

描述

条件编译。条件为真则编译相应代码。

范例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
//----------------------------------------------------------
//xxx.h
#ifndef XXX_H                       //禁止文件重导入
#define XXX_H                       //禁止文件重导入

#define STATUS      0x04            //宏定义

#define TEST_I      2               //宏定义

#endif //XXX_H                      //禁止文件重导入
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
//----------------------------------------------------------
//xxx.c
#include "xxx.h"                    //源文件包含

void main()
{
    int x =
#if !defined(TEST_I) || TEST_I == 0 //条件为假
        5                           //指令不会被编译
#elif TEST_I == 1                   //条件为假
        4                           //指令不会被编译
#elif TEST_I == 2                   //条件为真
        3                           //指令将被编译
#else                               //其他
        2                           //指令不会被编译
#endif                              //条件结束
        ;
    while(1){

    }
}