13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配

13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配

ID:37168429

大小:26.50 KB

页数:4页

时间:2019-05-21

13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配_第1页
13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配_第2页
13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配_第3页
13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配_第4页
资源描述:

《13第13章编译预处理和动态存储分配第13章编译预处理和动态存储分配》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13章编译预处理和动态存储分配主讲人:成江湖学长电话:13975026749QQ:1634754813.1编译预处理在C语言中,凡是以#号开头的行,都称为编译预处理命令行。C语言的预处理命令有:#define、#undef、#include、#if、#else、#elif、#endif、#ifndef、#line、#pragma、#error13.1.1宏替换1、不带参数的宏定义1)不带参数的宏定义命令行形式如下:#define宏名替换文本或#define宏名例如:#defineSIZE100A)宏名是用户定义的标识符,因此,不得与程序中的其他名字相同。B)#define命令行可以

2、不包含“替换文本“,这种情况下仅说明标识符”被定义“。2)替换文本中可以包含已定义过的宏名例如:#definePI3.14#defineADDPI(PI+1)#defineTWO_ADDPI2*ADDPI3)当宏定义在一行中定不下,需要在下一行继续时,只需在最后一个字符后紧接着加一个反斜线’’,如果在‘’前或在下一行的开头留有许多空格,则在宏替换时也将加入这些空格。例如:#defineLEAP_YEARyear%4==0;&&year%100!=0

3、

4、year%400==04)同一个宏名不能重复定义,除非两个宏定义命令行完全一致5)替换文本不能替换双引号中与宏名相同的字符串,例

5、如:如果YES是已定义的宏名,则不能用与它相关的替换文本来替换printf(“YES”)中的YES。6)替换文本并不替换用户标识符中的成分。例如:宏名NO,不会替换标识符中的NOPRO中的NO。7)用作宏名的标识符通常用大写字母表示,这并不是语法规定,只是一种习惯,以便与程序中的其它标识符相区别8)在C程序中,宏定义的定义位置一般写在程序的开头2、带参数的宏定义1)带参数的宏定义命令行形式如下#define宏名(形参表)替换文本例如:#defineMU(X,Y)X*YMu(a+3,b+4)(a+3)*(b+4)a+3*b+43、终止宏定义可以用#undef提前终止宏定义的作用域例如:

6、#definePI3.14Mian(){……………#undefPI…………….}13.1.2文件包含#include“文件名”先从源程序所在的目录内查找指定的包含文件,如果找不到,再按照系统指定的标准方式到有关目录中去寻找。#include<文件名>直接按照系统指定的标准方式到有关目录中去寻找说明:1)包含文件的#include命令行通常应书写在所用源程序文件的开头,故有时也把包含文件称作“头文件”。头文件名可以由用户指定,其后缀不一定用.h。2)包含文件中,一般包含有一些公用的#define命令行,外部说明或对库函数的原型说明。例如stdio.h就是这样的头文件。3)当包含文件修改

7、后,对包含该文件的源程序必须重新进行编译连接4)在一个程序中,允许有任意多个#include命令行。5)在包含文件中还可以包含其他文件。13.2动态存储分配13.2.1malloc函数和free函数1、malloc函数malloc(size)shortint*pi;float*pf;pi=(short*)malloc(2);pi=(int*)malloc(sizeof(int))pf=(float*)malloc(4);pf=(float*)malloc(sizeof(float))2、free函数free(p)13.2.2calloc函数calloc(n,size)n,size的类

8、型都必须为unsignedint例:char*ps;ps=(char*)calloc(10,sizeof(char));开辟了10连续的char类型的存储单元,由ps指向存储单元的首地址,每个存储单元可以存放一个字符,如果没有赋值,则赋初始值0。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。