前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >预处理命令 条件编译

预处理命令 条件编译

作者头像
叶茂林
发布2023-07-28 21:51:51
1340
发布2023-07-28 21:51:51
举报

预处理命令

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

预处理指令并不是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。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 预处理命令
    • 条件编译
      • 1.#if···#endif
      • 2.#ifdef···#endif
      • 3.#ifndef···#endif
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com