程序员宝典第7章.pdf

程序员宝典第7章.pdf

ID:57773712

大小:316.83 KB

页数:8页

时间:2020-03-31

程序员宝典第7章.pdf_第1页
程序员宝典第7章.pdf_第2页
程序员宝典第7章.pdf_第3页
程序员宝典第7章.pdf_第4页
程序员宝典第7章.pdf_第5页
资源描述:

《程序员宝典第7章.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章预处理以及内存管理在C/C++中,预处理也是很重要的一项机制。预处理是指在进行编译的第一遍扫描之前所做的工作。预处理由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。而内存管理是很多C/C++的技术爱好者很喜欢的,好的内存管理会极大的改善程序的性能,但是也要注意内存的使用,不正确的使用方法会导致程序出现比较严重的问题。7.1宏定义宏定义又称为宏代换、宏替换,简称宏。宏有时候并不是很受程序员的欢迎,但是它有一个最重要的作用就是可以自动产生代码。处理好宏定义很重要,使用宏定义可以防

2、止出错,提高可移植性、可读性、方便性等。面试题75宏定义与操作符的区别【出现频率】★★【关键考点】宏定义的概念;宏定义和操作符的区别。【考题分析】宏定义是C语言开始提供的3种预处理功能的其中一种。这3种预处理分别是:宏定义、文件包含和条件编译。宏定义的语法格式为:#define<标识符><字符串>,其中的标识符就是所谓的符号常量,也称为“宏名”。预处理(预编译)工作也叫做宏展开,即将宏名替换为字符串。单的宏定义将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替。预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于宏定义

3、只是用宏名对一个字符串进行简单的替换,因此如果在宏定义命令后加了分号,将会连同分号一起进行置换。带参数的宏定义格式为:#define<宏名>(<参数表>)<宏体>。其中,<宏名>是一个标识符,<参数表>中的参数可以是一个,也可以是多个,视具体情况而定,当有多个参数的时候,每个参数之间用逗号分隔。<宏体>是被替换用的字符串,宏体中的字符串是由参数表中的各个参数组成的表达式。宏定义与操作符的区别:宏定义是替换,不做计算,也不做表达式求解。另外宏定义第7章预处理以及内存管理的替换在编译前进行,所以它不占用内存。宏的展开不占运行时间,只占编译时间,而操作符则占运行时间。【答

4、案】宏定义是C++的预处理命令之一,它是一个替换操作,不做计算和表达式求解,不占用内存和编译时间。面试题76宏定义如何展开【出现频率】★★★【关键考点】宏定义展开的概念;宏定义如何展开。【考题分析】具有宏调用的源程序被汇编时,汇编程序将对每个宏调用进行宏展开。宏展开实际上是用宏定义时设计的宏体去代替宏指令名,并且用实际参数一一取代形式参数。一个宏展开的示例代码如下,原始的代码macro.cpp:#include#include#defineTO_STRING_MACRO(x)#x#defineA_TESTING_MACRO(n

5、)printf("atestingmacrowithaintargumentn=%d!",n)#defineSHOW_MACRO_CONTENT(m)TO_STRING_MACRO(m)//定义了三个不同的宏usingnamespacestd;intmain(intargc,char*argv[]){inta=10;int*b=&a;//使用宏cout<

6、TRING_MACRO(A_TESTING_MACRO(a))<

7、ut<<"10+20"<

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

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

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