预处理命令 条件编译

2023-07-28 21:51:51 浏览数 (1)

预处理命令

源程序中以#开头的行称为预处理指令。

预处理指令并不是C语言的语法成分,而是传给编译程序的指令。

包括:

宏定义

#define

#undef

文件包含

#include

条件编译

#if

#ifdef

#else

#elif

#endif

其他

#line

#error

#pragma

我们在之前的文章写过宏定义和文件包含的笔记,现在我们学习一下条件编译。

条件编译

一般情况下,源程序中所有的语句都参加编译,但有时也希望根据一定的条件去编译源程序的不同部分,这就是条件编译。

条件编译的作用就是使得同一个源程序在不同编译条件下会得到不同的目标代码。

1.#if···#endif

代码语言:javascript复制
#if 条件1
    程序1
#elif 条件2
      程序2
  ·
  ·
  ·
#else
      程序n
#endif

如果条件1为真就编译程序1,条件2为真就编译程序2,都不为真就编译程序n。

说明:

elif是else if的意思,但不能写成else if。

#elif和#else可以没有,但endif必须有,它是#if命令的结尾。

#elif可以有多个。

条件可以不加括号。

2.#ifdef···#endif

代码语言:javascript复制
#ifdef 宏名
       程序1
#else
       程序2
#endif

如果这个宏已经被定义了,那么编译程序1,否则编译程序2。

3.#ifndef···#endif

代码语言:javascript复制
#ifndef 宏名
        程序1
#else
        程序2
#endif

如果这个宏没有被定义,那么编译程序1,否则编译程序2。

0 人点赞