C/C++预处理指令#define,#ifdef,#ifndef,#endif…

C/C++预处理指令#define,#ifdef,#ifndef,#endif…
本文主要记录了C/C++预处理指令,常见的预处理指令如下:

#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息

1:#define 预处理
#define 预处理指令用于创建符号常量。该符号常量通常称为宏,c++ 大部分时候是用const 来定义常量。c语言自身有一些不足 就使用#define
#define PI 3.14159 (不是语句 不要加分号)

2:您可以使用 #define 来定义一个带有参数的宏,如下所示:
#define MIN(a,b) (a<b ? a : b)

3:条件编译
这个调节编译 我们看系统文件的时候 会经常看到,就是怕被重复定义
#ifdef DEBUG
cerr <<"Variable x = " << x << endl;
#endif
// 如果 DEBUG 已经被定义了 就执行下面的语句,
不过我们看到更多的是使用#ifndef
#ifndef __gpio_H //
#define __gpio_H // 如果__gpio_H没有被定义 我们就定义__gpio_H 就是为了防止重复定义。

不过我们在看 freeRtos 或者Linux系统程序的时候 是不是经常看到**#if #endif** ??
使用这个指令我在修剪系统的时候,很容易就可以添加或者删除某个我们不需要的模块,是系统只剩下我们所需要的功能模块,不至于导致过大的系统。
#if task_en //task_en 被定义为0的时候 不执行下面的语句, 1的时候执行


#endif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七 六 伍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值