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

C语言 学习 宏命令(预处理) 2025年6月9日14:41:39

宏命令(预处理)

1.宏定义#define 与 取消宏定义#undef

#define 宏名 替换内容  //无类型检查 简单文本替换

 举例:
#define PI 3.14159  
//这个PI 相当于3.14159
#define MAX(a, b) ((a) > (b) ? (a) : (b))
//这是一个对比a是否大于b如果是 输出 a 反之 b 
用括号的重要性: 
错误写法
#define SQUARE(x) x * x    SQUARE(3 + 1) 会变成 3 + 1 * 3 + 1 → 结果错误
#define MAX a > b ? a : b   MAX + 1 会变成 a > b ? a : b + 1,逻辑混乱

 #undef 宏名   可以取消之前定义的宏,让宏名失效

 取消定义宏举例:
#define min 1234  //创建一个宏定义
int main(){
#ifdef min     //判断宏定义是否存在 存在输出提示字
printf(1234);
#endif#undef min    //取消一个宏定义#ifdef min    //判断宏定义是否存在 存在输出提示字
printf(5554);
#endif
}

2.#include 指令(ai提供)

场景描述
引入标准库函数如 #include <stdio.h>
分离项目结构将函数声明放入 .h,实现放入 .c
模块化开发各个模块独立编写 .h 和 .c
宏定义共享将公共宏定义放在 .h 中供多个文件使用
条件编译控制结合 #ifdef 控制不同平台功能
操作说明
#include <file.h>引入系统头文件
#include "file.h"引入自定义头文件
#ifndef / #define / #endif防止头文件被重复包含
放置位置通常放在 .c 文件开头
不能做什么不能在里面写可执行语句(如 printf()

 3.条件编译

指令说明
#ifdef MACRO如果宏 MACRO 已定义
#ifndef MACRO如果宏 MACRO 未定义
#else否则
#elif否则如果(常用于多个条件判断)
#endif结束条件编译块
#if (表达式)如果表达式为真(支持常量运算)

相关文章:

  • 树莓派超全系列教程文档--(60)树莓派摄像头操作命令及使用其二
  • 2.2.3 07年T1文章精读
  • 技术突破与落地应用:端到端 2.0 时代辅助驾驶TOP10 论文深度拆解系列【第二篇(排名不分先后)】
  • Docker安装、基础知识、项目部署笔记
  • AI会取代IT从业者吗?
  • 割草农业车技术与运行分析!
  • 设计 IGMP Report/Leave 报文抑制的状态机模型
  • 【AI论文】CASS:Nvidia到AMD的数据、模型和基准测试的转换
  • OD 算法题 B卷【最大岛屿体积】
  • 第三章支线四 ·事件风暴 · 时序与响应的协奏
  • 无源一阶低通电路噪声如何计算
  • NIFI的处理器:SplitJson 2.4.0
  • 达梦数据库EXISTS子查询实战指南
  • 如何迁移Cordova应用到HarmonyOS 5 以及迁移时常见的问题?
  • Solidity从入门到精通-Remix的基本使用和Solidity的基本数据类型
  • 当建筑成为“精装盒子”:MiC技术如何重塑未来建造
  • 期货与期权市场基本原理是什么?
  • configure构建工程
  • 申请大模型备案对企业的具体价值体现在哪些方面?
  • 数据集转换xml2txt 、xml2json、json2coco
  • 自贡做网站的公司/外链火
  • 服装市场网站建设/seo外链怎么发
  • 网站需要每个城市做推广吗/互联网广告优势
  • 加盟餐饮网站建设/大连seo关键词排名
  • 报个电脑培训班多少钱/厦门seo外包服务
  • 银州铁岭做网站/佛山网站建设正规公司