《嵌入式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的文件,并将下面一行代码添加进去:

这样可以将上面程序中的两行delay_ms替换成#include 。程序的最终编译结果也和以前没有区别。在编译开始前,预处理器会读取delay.inc文件的内容,然后将所有#include 替换成delay_ms(500)。
预处理器是C语言的一个强大特性,可以提高程序的可读性,让我们能够在最大程度上重用代码,并显著提高程序的可维护性。
在上述示例程序中,第一行就是一个预编译指令,用来包含e3.h文件。在许多工程和硬件规范定义中,除注释外,程序第一行通常都用一个include指令来包含某文件。这类文件通常以.h为扩展名。在上述例子中,E3硬件所需的所有定义都在e3.h这个文件中。

时间: 2024-11-02 23:55:40

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

《嵌入式C编程:PIC单片机和C编程技术与应用》一第3章预编译指令3.1 标准预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第3章 Embedded C Programming: Techniques and Applications of C and PIC MCUS 预编译指令 编译器对C程序的处理可以明确地分为两步.第一步由预编译器完成.以#开头的预编译指令可能会影响编译器设置或者进行

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.8 时间

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.8节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.8 时间 在delay_ms中,ms表示毫秒(milliseconds).编程中常用的时间单位有: ns ?nanosecond(纳秒) ??0.000?000?001s μs ?microsecond(微秒) 0.000?001s ms millisecond(毫

《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第1章 Embedded C Programming: Techniques and Applications of C and PIC MCUS C语言概述和程序结构 1.1 C源代码 下面是一段C语言源代码: 这段代码初看起来可能会觉得难以理解,但读完本书并完成书中

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.5 函数

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.5节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.5 函数 接下来,我们看到了一个函数定义"main".所有程序都需要有一个main()函数,也就是主函数.这是程序开始执行的地方.在本书中,当提到函数名时,我们都会在它的名字后面跟上(),表示这是个函数. 函数名前的void表示此函数的类型是vo

《嵌入式C编程:PIC单片机和C编程技术与应用》一3.6 测验

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.6节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 3.6 测验 1. 将下列代码放入一个函数,将会发生什么事情? (a)程序将会延时5s (b)变量x被赋值为5 (c)第2行出现语法错误 (d)第3行出现语法错误 (e)什么都不会发生 2. 在练习X3-6.c中,整个文件只使用了一个分号,显示了预编译器的强大功能.下列

《嵌入式C编程:PIC单片机和C编程技术与应用》一2.2 C常量语法

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第2章,第2.2节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 2.2 C常量语法 2.2.1 二进制 需要多位(bit)二进制数才能表示一个大于1的值,具体需要多少位,则取决于数字大小.一个8位的二进制数(一个字节)可以表示256个数字(0-255). 16位的二进制数可以表示从0到65?535的值.如果使用一个字节来传输信息,一

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.6 声明

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.2节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.6 声明 "int i"声明了一个以标识符i作为变量名的数据类型.int表示该变量是一个整数.本例中,i只能在main()函数中使用.如果声明i的这一行放到函数之前(在函数外),那么i也可以在其他函数中使用.变量的使用范围称作变量作用域.作用域将

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.7 语句和表达式

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.7节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.7 语句和表达式 在上面的例子中for那一行就是一个语句(statement).程序在运行时会执行这些语句.该语句包含3个表达式.表达式将在第5章介绍,语句将在第6章介绍.在for语句中: 在这个例子中,for语句的后面有4行语句放在一对大括号{}内,随着i从1增长

《嵌入式C编程:PIC单片机和C编程技术与应用》一2.8 测验

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第2章,第2.8节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 2.8 测验 存储下面的二进制数需要多少字节? 1001011001 (a)10 (b)1 (c)1.2 (d)2 (e)二进制数无法用字节存储 下列哪个选项可以用来表示一个十六进制数? (a)两个十进制数 (b)字节 (c)半字节 (d)一个八进制数 (e)三个二进制