宁波大学:《C语言程序设计》第十三章 编译预处理和动态存储分配(石守东)

第十三章编译预处理和动态存储分配 13.1编译预处理 以#号开头的行,统称为编译预处理如 #define #include 定义:对C源程序编译前,由编译预处理程序一 进行预处理 每行的结束不能加
第十三章 编译预处理和动态存储分配 13.1 编译预处理 •以#号开头的行,统称为编译预处理如 #define,#include •定义:对C源程序编译前,由编译预处理程序 进行预处理 •每行的结束不能加;

3.1.1宏替换 无参数的宏定义 格式:# define宏名替换文本 or# define宏名(说明宏名已被”定义“ 如:# define sⅠZE100 ·替换文本中可以包含已定义过的宏名 如:# define pⅠ3.14 #define ADdPi(PI+1) #define TWO ADDPI (2 ADDPD
13.1 .1宏替换 一、无参数的宏定义 • 格式:#define 宏名 替换文本 or #define 宏名 (说明宏名已被”定义“) 如 :#define SIZE 100 • 替换文本中可以包含已定义过的宏名 如: #define PI 3.14 #define ADDPI (PI+1) #define TWO_ADDPI (2*ADDPI)

宏定义在一行中写不下,可在最后加“来继续 同一个宏名不能重复定义 ·替换文本不能替换双引号中与宏名相同的字符串 替换文本并不替换用户标识符中的成份 通常宏名的标识符用大写,这仅是一种习惯 宏定义的位置一般放在程序的开头
•宏定义在一行中写不下,可在最后加“\”来继续 •同一个宏名不能重复定义 •替换文本不能替换双引号中与宏名相同的字符串 • 替换文本并不替换用户标识符中的成份 •通常宏名的标识符用大写,这仅是一种习惯 •宏定义的位置一般放在程序的开头

有参数的宏定义 格式:# define宏名(形参表)替换文本 .fp: #define Mu(X, y)((X)*(y)) a=MU(5,2)/*引用带参的宏名* b=6/MU(a+3a); 注意:同一宏名也不能重复定义 圆括号不能少
二、有参数的宏定义 •格式: #define 宏名(形参表) 替换文本 •如: #define MU(X,Y) ((X)*(Y)) ………… a=MU(5,2); /*引用带参的宏名*/ b=6/MU(a+3,a); 注意:同一宏名也不能重复定义 ` 圆括号不能少

注意:宏替换不占运行时间 实参不能替换在双引号中的形参 三、终止宏定义 用# undef提前终止宏定义的作用域 1312文件包含 文件包含:指在一个文件中,去包含另一个 文件的全部内容 形式:# include“文件名“或# include
注意:宏替换不占运行时间 实参不能替换在双引号中的形参 三、终止宏定义 用#undef提前终止宏定义的作用域 13.1.2 文件包含 文件包含:指在一个文件中,去包含另一个 文件的全部内容。 形式:#include “文件名“ 或 #include

说明:一般把包含文件称为“头文件” 它有一些公用的# define命令行、外部说明 或库函数的原型说明。 可以有多个# include。当头文件修改后, 必需重新编译
说明:一般把包含文件称为“头文件” 它有一些公用的#define命令行、外部说明 或库函数的原型说明。 可以有多个#include 。当头文件修改后, 必需重新编译

132动态存储分配 静态存储分配:预先分配的内存空间是固定不 变的 动态存储分配:随时申请和释放内存空间 注:必须在程序开头包含头文件 stdlib. h
13.2动态存储分配 静态存储分配:预先分配的内存空间是固定不 变的 动态存储分配:随时申请和释放内存空间 注:必须在程序开头包含头文件stdlib.h

1321mac函数和free函数 1mllc函数 它的返回值类型为void*;调用形式为 malloc (size),其中size的类型为 unsigned int 此函数用来分配size个字节的存储区,返回 个指向存储区首地址的基类型为vod的地址 如下所示:
13.2.1 malloc函数和 free函数 1.malloc 函数 • 它的返回值类型为void*;调用形式为malloc (size),其中size的类型为 unsigned int • 此函数用来分配size个字节的存储区,返回 一个指向存储区首地址的基类型为void的地址 •如下所示:

int x p float“pl pi(int )malloc(2) pf=(float* )malloc(4) 以上程序段使p指向一个int类型 的存储单元,p指向foat类型 的存储单元。 注:括号中的*号不可少 若fpl=NULL)*pi=6; if(pf] =NULL)*pf-3.9
int *pi; float *pf; pi=(int*)malloc(2); pf=(float*)malloc(4); 以上程序段使pi指向一个int类型 的存储单元, pf指向float类型 的存储单元。 注:括号中的*号不可少。 若if(pi!=NULL) *pi=6; if(pf!=NULL) *pf=3.9;

执行后 6 3.9 f
6 3.9 执行后: pi pf
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 宁波大学:《C语言程序设计》第十二章 C语言中用户标识符的作用域和存储类(石守东).ppt
- 宁波大学:《C语言程序设计》第十一章 对函数的进一步讨论(石守东).ppt
- 宁波大学:《C语言程序设计》第10章 字符串(石守东).ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第8章 频域测量技术.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第7章 波形显示与测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第6章 频率与时间测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第5章 测量用信号发生器.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第4章 电子元器件与集成电路测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第3章 电流、电压与功率测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第2章 基本测量理论与测量数据处理.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第1章 电子测量概论(田华).ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第11章 电子测量技术的综合运用.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第10章 智能仪器与自动测量技术.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)目录(田华).ppt
- 复旦大学信息学院:《数字逻辑电路基础》PPT教学课件(共五章).ppt
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第六章 电力电子技术应用中的一些问题.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第五章 交-直-交变换器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第四章 直流-直流变换器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第三章 交-交变换器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第二章 可控整流器与有源逆变器.pdf
- 宁波大学:《C语言程序设计》第十四章 结构体、共用体和用户定义类型(石守东).ppt
- 宁波大学:《C语言程序设计》第十五章 位运算(石守东).ppt
- 宁波大学:《C语言程序设计》第十六章 文件(石守东).ppt
- 宁波大学:《C语言程序设计》第一章 程序设计基本概念(石守东).ppt
- 宁波大学:《C语言程序设计》第二章 C程序设计的初步知识(石守东).ppt
- 宁波大学:《C语言程序设计》第三章 顺序结构(石守东).ppt
- 宁波大学:《C语言程序设计》第四章 选择结构(石守东).ppt
- 宁波大学:《C语言程序设计》第五章 循环结构(石守东).ppt
- 宁波大学:《C语言程序设计》第六章 字符型数据(石守东).ppt
- 宁波大学:《C语言程序设计》第七章 函数(石守东).ppt
- 宁波大学:《C语言程序设计》第八章 指针(石守东).ppt
- 宁波大学:《C语言程序设计》第九章 数组(石守东).ppt
- 机械工业出版社:《实用电子电气工程图算手册》PDF电子书(共十二章)(刘启光).pdf
- 《电子电路相关实验》实验五 集电极调幅与大信号检波.ppt
- 《电子电路相关实验》实验一 高频小信号调谐放大器.ppt
- 《电子电路相关实验》实验八 模拟锁相环.ppt
- 《电子电路相关实验》实验二 二极管开关混频器实验.ppt
- 《电子电路相关实验》实验六 变容二极管调频.ppt
- 《电子电路相关实验》实验七 集成电路模拟乘法器的应用.ppt
- 《电子电路相关实验》实验三 高频谐振功率放大器.ppt