《嵌入式C编程:PIC单片机和C编程技术与应用》一1.4 C预编译指令

简介:

本节书摘来自华章出版社《嵌入式C编程:PIC单片机和C编程技术与应用》一书中的第1章,第1.4节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.4 C预编译指令

预编译是C语言中一个非常有意思的特性。预处理使用工具(预处理器)在编译前先扫描一遍代码,并对代码做出相应的修改从而生成用来编译的代码。预编译指令由#开始,占用一整行。在第3章中将会详细介绍它。在上面的例子中,#include指令将文件(e3.h)的整个内容都替换到#include这一行,然后再来编译。
例如,假设我们创建了一个名为delay.inc的文件,并将下面一行代码添加进去:


3b967e217c8bc86315ced94c51a11ec82f8f0a70

这样可以将上面程序中的两行delay_ms替换成#include 。程序的最终编译结果也和以前没有区别。在编译开始前,预处理器会读取delay.inc文件的内容,然后将所有#include 替换成delay_ms(500)。
预处理器是C语言的一个强大特性,可以提高程序的可读性,让我们能够在最大程度上重用代码,并显著提高程序的可维护性。
在上述示例程序中,第一行就是一个预编译指令,用来包含e3.h文件。在许多工程和硬件规范定义中,除注释外,程序第一行通常都用一个include指令来包含某文件。这类文件通常以.h为扩展名。在上述例子中,E3硬件所需的所有定义都在e3.h这个文件中。
相关文章
|
9月前
|
人工智能 自然语言处理 测试技术
嵌入式开发者的灵魂拷问:通义灵码2.0能否Hold住51单片机竞赛级开发?
通义灵码2.0嵌入式开发专项评测,基于蓝桥杯第十二届单片机赛题(NE555频率检测),验证多文件代码生成及单元测试智能体能力。评测结果显示,AI在基础场景中具备实用性,但存在硬件抽象层缺陷和图像识别局限。原始得分58.1/70,主要问题为LED状态异常。完整代码已开源。
310 3
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
691 5
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
371 4
|
Web App开发 传感器 Linux
【嵌入式软件工程师面经】STM32单片机
【嵌入式软件工程师面经】STM32单片机
554 1
|
存储 移动开发
80C51单片机----数据传送类指令
80C51单片机----数据传送类指令
952 2
|
算法 定位技术 C语言
51单片机实现俄罗斯方块游戏编程
设计了一款基于AT89C51单片机的俄罗斯方块游戏机,使用LCD12864液晶显示,按键控制方块移动与变形。游戏中,7种不同形状的方块随机下落,填满一行得分,满屏则游戏结束。包含电源、单片机最小系统、LCD和按键模块的硬件电路通过Proteus进行了仿真,展示了游戏运行、得分和计时等。代码部分展示了检查碰撞和更新地图的函数。
375 1
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
408 0
|
存储 芯片
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
|
传感器 安全 物联网
单片机在智能家居系统中的应用研究
单片机在智能家居系统中的应用研究
671 1
|
芯片
AT89S52单片机的最小应用系统
AT89S52单片机的最小应用系统
452 0