文档详情

ARM嵌入式系统结构与编程:第8章 ARM汇编语言与嵌入式C混合编程.ppt

发布:2025-03-27约6.83千字共55页下载文档
文本预览下载声明

8.3.3预处理的使用在源程序被编译器处理之前,编译预处理器首先对源程序中的预处理命令进行展开或处理。预处理命令书写格式为以“#”开头,占单独书写行,语句尾不加分号。8.3.3预处理的使用常见预处理命令:#define#undef#include#ifdef#ifndef#if#elif#else#endif8.3.3预处理的使用1.宏定义(#define) (1)不带参数的宏 不带参数的宏定义的一般形式为:#define宏名[宏体]功能:用指定表示符(宏名)代替字符序列(宏体),可以定义在任何位置,一般定义在函数外面。如果没有使用#undef,它的作用域是从定义命令开始到文件的结束为止。#undef语法格式:#undef宏名8.3.3预处理的使用1.宏定义(#define) (1)不带参数的宏 例: #defineYES1 #defineNO0 if(x==YES)printf(“welcome!\n”); elseif(x==NO)printf(“error!\n”);展开后: if(x==1)printf(“welcome!\n”); elseif(x==0)printf(“error!\n”);8.3.3预处理的使用1.宏定义(#define) (1)不带参数的宏 引号内与宏名相同的内容不进行替换,如:#definePI3.14printf(“2*PI=%f\n”,PI*2);展开后:printf(“2*PI=%f\n”,3.14*2);8.3.3预处理的使用(2)带参数的宏定义带参数的宏定义一般形式为:#define宏名(参数表)宏体注意:宏名与后面的括号之间没有空格;宏的展开是将形参用实参进行替换,其他字符保留,宏体及各形参一般应加括号()。8.3.3预处理的使用(2)带参数的宏定义例: #definePOWER(x)x*x x=4; y=6; z=POWER(x+y); 展开后……(3)宏定义与函数8.3.3预处理的使用8.3.3预处理的使用带参数宏定义与函数的区别8.3.3预处理的使用2.文件包含(#include)文件包含的功能是使得一个源文件可以将另一个源文件的内容全部包含进来,它的一般形式为: #include“文件名” //先搜索当前目录,再搜索标准目录,可以指定目录

#include文件名 //直接按标准目录搜索一般在头文件(.h)中包含宏定义、数据结构定义、函数说明等,然后在源文件(.c)中使用文件包含命令8.3.3预处理的使用2.文件包含(#include)例8-9//头文件#defineSQR(x)((x)*(x))#defineCUBE(x)((x)*(x)*(x))#defineQUAD(x)((x)*(x)*(x)*(x))//源文件#includestdio.h#includeex8_9.h#defineMAX_POWER10intmain(){ intn; printf(number\texp2\texp3\texp4\t\n); printf(------\t------\t-----\t------\n); for(n=1;nMAX_POWER;n++) printf(%2d\t%3d\t%4d\t%5d\n,n,SQR(n),CUBE(n),QUAD(n)); return0;}gcc只进行预编译的选项是什么?8.3.3预处理的使用3.条件编译(1)形式1: #ifdef标识符 程序段1#else 程序段2#endif8.3.3预处理的使用(2).形式2#ifndef标识符 程序段1#else 程序段2#endif*TM**TM第8章ARM汇编语言与嵌入式C混合编程本章首先简要的介绍了嵌入式C语言的编程规范,嵌入式开发中常用的位运算与控制位域及在嵌入式C程序设计中要注意的问题,为读者进行嵌入式C程序设计打基础。然后介绍在ARM汇编语言与嵌入式C语言进行相互调用的标准(AAPCS),并以大量的实例说明了相互调用应注意的问题。内容提要8.1嵌入式C编程规范8.2嵌入式C程序设计中的位运算8.3嵌入式C程序设计中的几点说明8.4嵌入式C程序设计格式8.5

显示全部
相似文档