早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->
●下列叙述中正确的是 (34) 。(34) A.宏替换不占用运行时间 B.在带参的宏定义中,要定义其形式参数
题目
●下列叙述中正确的是 (34) 。
(34) A.宏替换不占用运行时间
B.在带参的宏定义中,要定义其形式参数的类型
C.在带参的宏定义中,形式参数是变量
D.在带参的宏定义中,形式参数是常量
参考答案
正确答案:A
【解析】带参的宏定义与函数类似。如果我们把宏定义时出现的参数视为形参,而在程序中引用宏定义时出现的参数视为实参。虽然带参数的宏定义和带参数的函数很相似,但它们还是有本质上的区别:
①在带参的宏定义中,形式参数不是变量,只是一个符号,不分配内存单元,不必定义其形式参数的类型。发生宏"调用"时,只是将实参替换形参。而在函数中,形参和实参是完全独立的变量,它们均有自己的作用域。当调用发生时,实参传递给形参的过程(值传递或引用传递)完全不同于简单的宏替换。
②在宏定义中的形参是标识符,而宏调用中的实参可以是表达式。
③从发生的时间来说,宏"调用"是在编译时发生的,函数调用是在程序运行时发生的;宏"调用"不存在内存单元分配的问题,而函数调用时,会给形参变量分配内存单元,然后复制实参的值,函数调用结束后,形参变量占用的内存单元被释放。
【解析】带参的宏定义与函数类似。如果我们把宏定义时出现的参数视为形参,而在程序中引用宏定义时出现的参数视为实参。虽然带参数的宏定义和带参数的函数很相似,但它们还是有本质上的区别:
①在带参的宏定义中,形式参数不是变量,只是一个符号,不分配内存单元,不必定义其形式参数的类型。发生宏"调用"时,只是将实参替换形参。而在函数中,形参和实参是完全独立的变量,它们均有自己的作用域。当调用发生时,实参传递给形参的过程(值传递或引用传递)完全不同于简单的宏替换。
②在宏定义中的形参是标识符,而宏调用中的实参可以是表达式。
③从发生的时间来说,宏"调用"是在编译时发生的,函数调用是在程序运行时发生的;宏"调用"不存在内存单元分配的问题,而函数调用时,会给形参变量分配内存单元,然后复制实参的值,函数调用结束后,形参变量占用的内存单元被释放。
看了●下列叙述中正确的是 (34)...的网友还看了以下:
下列说法错误的是A、小于-1的数的倒数大于其本身B、大于1的倒数小于其本身C、一个数的倒数不能等于 其他 2020-05-14 …
(1)下列各数中,分解素因数后,只含有素因数3的数是().A12B15(1)下列各数中,分解素因数 数学 2020-06-25 …
1.将下列各数化成分数.1.120.368.120.0150.630.5023.250.152.将 数学 2020-06-27 …
下列各句中,“数”字破读为cù,意思是“细密”的是().A.朋友数,斯疏矣.B.数罟不入洿池,鱼鳖 语文 2020-07-01 …
把下列的词语分类见义勇为狐假虎威守株待兔一丝不苟装腔作势滥竽充数不耻下问出类拔萃 语文 2020-07-07 …
等比数列{an}1,a1,a8,a4分别是下表第一、二、三行1的某一个数,且a1,a8,a41的任 其他 2020-07-18 …
有关数列下列说法正确的是①数列1,2,3与数列3,2,1是同一数列.②数列1,2,3与数列1,2, 数学 2020-07-23 …
分析近几年来我国城乡恩格尔系数不断下降的原因 其他 2020-07-23 …
观察下面一列数—1,2/1,—3/1,4/1,—5/1,6/1,—7/1,8/1,—9/1.1、第 数学 2020-07-25 …
分别列出4个整数相加的算式,是符号下列条件:(1)4个数同号,和为-21(2)4个数不同号,和为- 数学 2020-07-30 …