“预处理伪指令”一、C语言预处理命令”可以改进程序设计的环境,提高编程效率,一般以#号打头,可分为以下三种文件包含伪指令的格式(P239)#include<头文件名.h>;标准头文件文件包含简单宏:#define宏标识符宏体参数宏:#define宏标识符(形式参数表)宏体宏定义#if(条件表达式1)(P244)条件编译#elif(条件表达式2)#elif(条件表达式n)#else#endif
一、C语言“预处理伪指令” “预处理命令”可以改进程序设计的环境,提高编程效 率,一般以#号打头,可分为以下三种 : ⚫文件包含 ⚫宏定义 ⚫条件编译 文件包含伪指令的格式(P239) #include<头文件名.h> ;标准头文件 #include“头文件名.h” ;自定义头文件 #include 宏标识符 简单宏: # define宏标识符 宏体 参数宏:# define 宏标识符(形式参数表) 宏体 条件宏定义:(P242) #ifdef 宏标识符 [#undef 宏标识符] #define 宏标识符 宏体 #else #define 宏标识符 宏体 #endif #if(条件表达式1) (P244) . #elif(条件表达式2) . #elif(条件表达式n) . #else . #endif
二、嵌入式程序设计中的函数及函数库承数是C语言程序设计的核心。一个较大的C语言程序一般是由一个主函数和若干个子函数组成,每个函数完成一个特定的功能。函数之间也可以相互调用。函数的格式:定义性说明格式:(P245)【存储类说明符】类型说明符【修饰符]标识符(参数表)(函数体)原型说明格式(【函数体)类型说明符修饰符1标识符(参数表)extern
二、嵌入式程序设计中的函数及函数库 函数是C语言程序设计的核心。一个较大的C语言程序一般是 由一个主函数和若干个子函数组成,每个函数完成一个特定的 功能。函数之间也可以相互调用。 函数的格式: 定义性说明格式 :(P245) [存储类说明符] 类型说明符[修饰符]标识符(参数表){函数体} 原型说明格式 : extern 类型说明符[修饰符] 标识符(参数表){函数体}
三、嵌入式程序设计中常用的C语言语句C语言语句格式为:[标号:]语句[;]C语言语句很多,常用到的有以下几种%件语回的格式中##达式中国徐#i越D条件语句H0renente1(nswith语句循环语句
三、嵌入式程序设计中常用的C语言语句 C语言语句格式为: [标号:] 语句[;] C语言语句很多,常用到的有以下几种: 条件语句 swith语句 循环语句 条件语句的格式 两重选择: if(条件表达式) 语句1; else语句2; 多重选择 : if(条件表达式1) 语句2; else if(条件表达式2) 语句3; . else if(条件表达式n) 语句n; 循环语句的格式 for循环语句格式 : for(表达式1;表达式2;表达式3) 语句; while循环语句格式: while(条件表达式) 语句; do while循环语句格式: do 语句; while(条件表达式);
5.4嵌入式C语言程序设计技巧C程序编译后的汇编代码嵌入式C语言程序设计实例All_Test变量定义1、在变量声明的时候,最好把所有相同类型的变量放在一起定义,这样可以优化存储器布局。由下例可以看出:区市刻2、对于局部变量类型的定义,使用short或char来定义变量并不是总能节省存储空间。有时使用32位int或unsingedint局部变同类型局变量的编还结果量更有效率一些,如下图所示:3、变量定义中,为了精简程序,程序员总是竭力避免使用余变量。但有时使用余变量可以减少存储器访问的次数这可以提高系统性能
5.4 嵌入式C语言程序设计技巧 一、C程序编译后的汇编代码 二、变量定义 1、在变量声明的时候,最好把所有相同类型的变量放在一起定 义,这样可以优化存储器布局。由下例可以看出: 例子: 在数据区里的布局: char a; char a; short b; char c; char c; short b; int d; int d; a pad b c pad d a c b d 2、对于局部变量类型的定义,使用short或char来定义变量并 不是总能节省存储空间。有时使用32位int或unsinged int局部变 量更有效率一些,如下图所示: 不同类型局部变量的编译结果 int wordinc (int a) {return a+1 } short shortinc(short a ) {return a+1 } char charinc(char a ) {return a+1 } wordinc ADD a1,a1,#1 MOV PC,LR shortinc ADD a1,a1,#1 MOV a1,a1.LSL #16 MOV a1,a1,ASR #16 MOV PC,LR charinc ADD a1,a1,#1 AND a1,a1,#&ff MOV PC,LR 3、变量定义中,为了精简程序,程序员总是竭力避免使用冗 余变量。但有时使用冗余变量可以减少存储器访问的次数这可以 提高系统性能。 嵌入式C语言程序设计实例 All_Test