马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
C语言是一种结构化的程序设计语言,它的优点是运行速度快、编译效率高、移植性好和可读性强。C语言具有简单的语法结构和强大的处理功能,并可方便地实现对系统硬件的直接操作。C语言支持模块化程序设计结构,支持自顶向下的结构化程序设计方法。因此,用C语言编写的应用软件,可大大提高软件的可读性,缩短开发周期,便于系统的改进和扩充,这为开发大规模、高性能和高可靠性的应用系统提供了基本保证。 嵌入式C语言程序设计时利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计语言。嵌入式C语言程序设计首先是C语言程序设计,必须符合C语言基本语法。嵌入式C语言程序设计,必须符合C语言基本语法。嵌入式C语言程序设计又是面向嵌入式的应用,因此就要利用C语言基本知识开发出面向嵌入式的应用程序。如何能够在嵌入式系统开发中熟练、正确地运用C语言开发出高质量的应用程序,是学习嵌入式程序设计的关键。 C语言的“预处理伪指令”在嵌入式程序设计中的应用 在C语言源程序中常常加入一些“预处理指令”,可以改进程序设计的环境,提高编程效率。它虽然写在源程序中,但不产生程序代码,因此也称为预处理指令。它不是C语言本身的组成部分,因此不能直接进行编译,而必须在编译前预先对这些特殊的指令进行“预处理”。在预处理时用“预处理命令”定义的实际内容代替该命令,因此也称为“编译预处理器”或“编译预处理伪指令”。 C语言所有预处理伪指令都以#号开头,以区别于源文件中的语句行与说明行。与处理伪指令有以下3种:文件包含、宏定义和条件编译。 预处理指令有以下特点: 把文件包含的正文替换进来,如标准头文件和自定义头文件,其内容包括符号常量、符合变量原型、用户定义的变量类型原型和函数的原型说明等。 对宏定义进行宏扩展,减少了编程量,改进源程序的可读性,参数宏更减少了函数调用的开销。 条件编译改善了编程的灵活性,也改善了可移植性。 所有预处理器伪指令都以#号开头,以区别于源文件中的语句行和说明行。 下面分别对预处理伪指令进行详细介绍。 1.文件包含伪指令 文件包含伪指令可将头文件包含到程序中,头文件中定义的内容包括符号常量、符合变量原型、用户定义的变量类型原型和函数的原型说明等。编译器编译预处理时用文件包含的正文内容替换到实际程序中。 1)文件包含伪指令的格式 #include<头文件名.h> ;标准头文件 #include“头文件名.h”
;自定义头文件 #include 宏标识符
2)包含文件伪指令的说明 习惯上头文件名后用.h作为扩展名,可带或不带路径。 头文件可分为标准头文件与自定义文件。 尖括号对内的头文件为标准头文件。标准头文件按DOS系统的环境变量include所指定的目录顺序搜索头文件。 双引号岁“”内的头文件名为用户自定义头文件。搜索时,首先在当前目录中搜索,其次按环境变量include指定的目录顺序搜索。 搜索到头文件后,就将该伪指令直接用头文件内容替换。 第3种格式中的宏标识符预处理器首先对它进行宏扩展。宏扩展后得到的可能是括号内的头文件名或双引号对内的投文件名。其后,就可按前2中格式之一来处理。 3)包含文件伪指令举例 示例
标准头文件定义 #include <string.h> #include <stdio.h> string.h和stdio.h是标准头文件,按环境变量include指定的目录顺序搜索string.h和stdio.h。 示例
用户自定义文件 本例以S3CEV40开发板整个系统各个模块的测试程序的主文件main.c为例,详细介绍如何利用用户自定义头文件进行系统资源管理。
File: main.c Desc : cmain entry
/--include files--/ #include”44bilb.h” #include”44b.h” #include”rtc.h” #include”../LCD_Test/bmp.h” …… …… Main.c中的44b.h和44bilb.h等头文件是S3CEV40开发板测试程序的主文件main.h中用户自定义头文件。这些头文件定义了44BOX芯片及其外围接口的硬件资源。嵌入式SoC芯片已成为高性能嵌入式系统的核心,因此嵌入式软件开发时涉及片内资源较多,为了更好地管理这些资源,利用用户头文件对系统进行定义,可大大提高编程效率,并增加程序的可读性,这是嵌入式软件开发的第一步。 “44bilb.h”对程序开发中的函数进行了声明,并用宏定义对一些常用的表达式或常量进行了预定义。 “44bilb.h”内容如下所示:
File: 44BLIB.H Desc: Samsung 44BOX CPU function declare and common define
凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网 |