当前位置: 首页 > news >正文

嵌入式C学习笔记之预编译

一、宏定义

  1. 两种参数的宏

//一、不带参数的宏定义,符号常量的定义

#define PI 3.14

#define PR printf("helloworle\n")

//二、带参数的宏定义

#define MIX(a) a*a

#define MIX2(b) (b)*(b)

二、文件包含

使用一个特定的点h头文件,完成所有相关内容的声明:

1、宏定义

2、结构体、共用体/联合体、枚举类型的定义

3、外部函数的声明

4、全局变量的声明

5、typedef声明

6、其它常用头文件的包含

比如将以上内容包含在c1402.h,将来只需要在c文件中#include "c1402.h"这样的方式来引入头文件

三、条件编译

满足判断条件的进行预编译进去否则会被舍弃

  • 条件编译指令1:

#if 条件

若干语句;

#endif

  •   条件编译指令2:

#if 条件

若干语句1;

#else

若干语句2;

#endif

  • 条件编译指令3:

#if 条件1

若干语句1;

#elif 条件2

若干语句2;

#elif 条件3

若干语句3;

#endif

  • 宏定义条件编译

1、#ifdef 宏名

若干语句1

#else

若干语句2

#endif

2、#ifndef 宏名

若干语句

#endif

条件编译指令7:

#ifndef 宏名

若干语句1

#else

若干语句2

#endif

http://www.dtcms.com/a/360291.html

相关文章:

  • Redis面试重点-2
  • Coze源码分析-工作空间-项目开发-前端源码
  • 在Windows系统Docker中使用wsl2、容器、windows文件路径三种不同挂载方式的区别和性能差异
  • ceph对象存储-存储池-用户认证
  • @Value注解的底层原理(一)
  • Day18 (前端:JavaScript基础阶段)
  • 数据结构 04(线性:双向链表)
  • Ansible 临时命令与常用模块实操指南
  • Cartographer中的gflag与lua文件
  • 国庆福建霞浦游
  • 阿里云创建自己的博客,部署wordpress
  • Java学习笔记-IO流(更新中...)
  • 嵌入式C学习笔记之链表
  • kkfileview自建cdn引入
  • 解决git push时的错误提示:“error: src refspec master does not match any”
  • 极客学院-从零开始学架构
  • 轻量化注意力+脉冲机制,Transformer在低功耗AI中再度进化
  • CAN数据链路层、网络层(ISO11898、15765)
  • 深度学习周报(8.25~8.31)
  • Unity核心概念②:帧、生命周期函数
  • Unity学习----【数据持久化】二进制存储(三)--文件夹操作
  • JSP 原理深度解析
  • 血缘元数据采集开放标准:OpenLineage Integrations Compatibility Tests Structure
  • 一句话PHP木马——Web渗透测试中的隐形杀手
  • Java GC 销毁机制 与 Redis 过期策略深度对比
  • 微知-Mellanox OFED编译的一些细节?无法编译怎么办?如何添加自定义编译选项?
  • linux系统学习(14.日志管理)
  • Day 01(02): 精读HDFS概念
  • QML Chart组件之图例
  • leetcode_74 搜索二维矩阵