《嵌入式C编程:PIC单片机和C编程技术与应用》一1.4 C预编译指令-阿里云开发者社区

开发者社区> 华章计算机> 正文

《嵌入式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这个文件中。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
关于NOR_FLASH的大小在单片机程序中的应用
在单片机开发中,NOR_FLASH常用的有4M和8M的大小: 4M的FLASH在程序中可以这样表示:Ptr < 0x220000 8M的FLASH在程序中可以这样表示:Ptr < 0x400000(最大只能读到0x3fffff) 有了这个关系,在判断NOR_FLASH好坏的方法上我们可以采用计算checksum的方式来校验。
653 0
精通linux c编程 --answer
  第1章 一、填空题 1、Unix 2、Shell 3、普通文件 目录文件 设备文件 4、目录 5、mkdir 二、选择题 1、A 2、A 3、B 4、C 5、C 第2章 一、填空题 1、Shell 高级语言 2、vi emacs 3、Make...
806 0
阿里云Web应用托管服务(web+)如何使用命令行工具变更部署环境配置?
今天我们来向大家介绍一下,阿里云Web应用托管服务(web+)中如何使用命令行工具对应用部署环境进行变更。在此之前请您确保wpctl命令行工具已经正确安装并配置。 我们首先输入wpctl env:apply --help查阅apply命令的帮助文档。
754 0
类似Qt之GUI,但比Qt小的多 -- 适用于嵌入式/SoC/单片机/MCU等的界面库
类似Qt之GUI,但比Qt小的多 -- 适用于嵌入式/SoC/单片机/MCU等的界面库
24 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载