C语言基础学习——预处理
预处理1、预处理不是C语言的一部分2、区分编译和预处理编译程序 --- 笼统的编译 //实际上划分几个具体的阶段编译过程1.预处理将程序中预处理命令执行完毕 --- 本质做文本的替换转换为纯C语言代码2.编译将C语言代码转换为汇编代码3.汇编将汇编代码转换为机器代码二进制组合4.链接将写的代码和用到的代码拼凑成完整的可执行文件预处理阶段1.宏定义2.文件包含3.条件编译预处理命令都是以#开头的宏定义a不带参的宏#define 标识符 字符串 #define 宏名 宏值 eg#define N 10N代表了10这个文本信息预处理时凡是代码中出现的N都用10这个文本替换注意1.预处理命令 #define2.出现在字符串中的与宏名同名的标识符不会被替换printf(N %d\n,N) //第一个N不会被替换第二个N会被替换3.宏名 --- 标识符命名规则和变量名命名规则一致写法一般大写名字中所有字符都大写 //为了区别变量名4.宏值 后面不能有分号5.应用提高代码可读性 // 一改全改提高编程效率6.预处理作用域从定义处开始对后面代码都有效到文本结束如果想提前取消其作用可以用 #undef 取消 // #undef 宏名 --- #undef Nb带参宏#define 宏名(参数表) 字符串 #define 宏名(参数表) 宏值 eg#define MUL(a,b) a*b注意1.带参宏 --- 宏函数但是带参宏不是函数2.带参宏可以用来实现一些简单的函数功能3.宏的副作用#define MUL(a,b) a*b MUL(11,22) 11*22能用括号括起来的都括起来4.带参宏和函数区别带参宏做的是文本替换每写一次就意味着一份代码替换函数做的是函数的调用代码只有一份带参宏参数不用类型检查函数型参需要做类型检查5.如果存在宏的嵌套需要层层展开6.宏定义写到换行时候结束宏定义必须在同一行7.换行符 \ 放到一行文件包含#include 文件名 //默认到系统的相关路径下寻找包含的文件#include 文件名 //首先在当前路径下寻找要包含的文件找不到再到系统的相关路径下寻找注意用 //如果包含的是标准头文件 --- 系统提供用 //要用自己的头文件 --- 自己指定路径条件编译选择将哪些代码放到最终的代码中进行编译形式1#ifdef 标识符 程序段1 #else 程序段2 #endif语义如果标识符已经定义了为真将程序段1放到预处理完的代码中否则为假将程序段2放到预处理完的代码中形式2#ifndef 标识符 程序段1 #else 程序段2 #endif语义如果标识符没有定义为真将程序段1放到预处理完的代码中否则为假将程序段2放到预处理完的代码中形式3#if 表达式 程序段1 #else 程序段2 #endif语义#if 表达式为真程序段1否则程序段2用途多文件编程的头文件中根据工程需求拆出功能功能1func1.c ---实现对应功能的具体代码func1.h ---主要用来声明 func1.c 要用到的相关内容多次包含会导致重复定义的问题标准写法#ifndef 头文件名字 //前后下划线 字母大写 h前点也换成下划线 #define 头文件名字 头文件内容 #endif

相关新闻

大模型实战指南:从入门到企业级应用

大模型实战指南:从入门到企业级应用

1. 为什么需要这份大模型使用指南?在AI技术爆发的当下,大型语言模型(LLM)已成为开发者、研究者和技术爱好者的必备工具。但很多人在实际使用中常遇到三大困境:一是面对众多模型选择时无从下手;二是缺乏系统…

2026/7/28 2:47:09阅读更多 →
算法日常・每日刷题--<链表>5

算法日常・每日刷题--<链表>5

25. K 个一组翻转链表 - 力扣(LeetCode)25. K 个一组翻转链表 - 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&a…

2026/7/28 2:47:09阅读更多 →
千笔与PaperRed智能写作工具对比评测

千笔与PaperRed智能写作工具对比评测

1. 项目背景与核心价值作为一名在学术写作领域深耕多年的研究者,我深刻理解论文写作过程中的痛点。每当看到学生和研究人员被文献综述、格式调整、查重降重等问题困扰时,总在思考如何用技术手段提升效率。近期测试了两款主打智能写作的工具——千笔和Pap…

2026/7/28 2:45:09阅读更多 →
民法典前两条核心价值与法律适用解析

民法典前两条核心价值与法律适用解析

1. 民法典基本规定前两条的核心价值解析作为新中国第一部以"法典"命名的法律,《中华人民共和国民法典》开篇两条奠定了整部法典的立法根基与价值取向。这两条规定看似简洁,实则蕴含深意,直接影响着后续1260条法律条文的解释与适用。…

2026/7/28 4:11:21阅读更多 →
用掌控板改造回力车:亲子共创智能小车的硬件与编程实战

用掌控板改造回力车:亲子共创智能小车的硬件与编程实战

1. 项目缘起:当经典玩具遇上开源硬件每个80、90后的童年记忆里,大概都有一辆红色的回力小汽车。它结构简单,向后一拉,松开手就能“嗖”地冲出去,承载了无数简单的快乐。如今,我的孩子也到了玩小汽车的年纪&…

2026/7/28 4:11:21阅读更多 →
C++头文件重复包含:原理、解决方案与工程实践

C++头文件重复包含:原理、解决方案与工程实践

1. 项目概述:头文件重复包含的“幽灵”与“解药”在C项目开发的深水区,尤其是当项目规模从几个文件膨胀到几十上百个模块时,一个看似不起眼但破坏力极强的“幽灵”常常会悄然浮现——头文件重复包含。你可能正专注于某个核心算法的实现&#…

2026/7/28 4:11:21阅读更多 →
基于Arduino与3D打印的瑞克传送枪制作:从建模到编程全流程

基于Arduino与3D打印的瑞克传送枪制作:从建模到编程全流程

1. 项目概述:从动画到现实的造物之旅如果你和我一样,是《瑞克和莫蒂》的粉丝,那么对瑞克桑切斯手中那把标志性的“时空传送枪”一定不会陌生。那不仅仅是一个道具,更是自由、混乱与无限可能的象征。每次看到瑞克随手一按&#xff…

2026/7/28 4:11:21阅读更多 →
树莓派3B流水灯项目:从GPIO原理到Python硬件控制入门实践

树莓派3B流水灯项目:从GPIO原理到Python硬件控制入门实践

1. 项目概述:从零开始的树莓派3B入门仪式如果你手头恰好有一块吃灰的树莓派3B,又或者你刚刚踏入这个迷人的微型计算机世界,正愁不知道从哪里开始你的第一个硬件交互项目,那么“流水灯”绝对是你不能错过的经典入门实验。这不仅仅是…

2026/7/28 4:11:21阅读更多 →
3分钟掌握eSpeak NG:开启多语言语音合成的神奇之旅

3分钟掌握eSpeak NG:开启多语言语音合成的神奇之旅

3分钟掌握eSpeak NG:开启多语言语音合成的神奇之旅 【免费下载链接】espeak-ng eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents. 项目地址: https://gitcode.com/GitHub_Trending/es/espeak-ng 想要…

2026/7/28 4:09:21阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →