早教吧作业答案频道 -->其他-->
一道C++题目,求详解对于以下宏定义:#defineM(x)x*x#defineN(x,y)M(x)+M(y)宏调用N(2,2+5)执行后,值为AA.21B.53C.19D.51
题目详情
一道C++题目,求详解
对于以下宏定义:#define M(x) x*x #define N(x,y) M(x)+M(y)
宏调用N(2,2+5)执行后,值为A
A.21
B. 53
C. 19
D. 51
对于以下宏定义:#define M(x) x*x #define N(x,y) M(x)+M(y)
宏调用N(2,2+5)执行后,值为A
A.21
B. 53
C. 19
D. 51
▼优质解答
答案和解析
直接代入即可,N(2, 2 + 5) = M(2) + M(2 + 5) = 2 * 2 + 2 + 5 * 2 + 5 = 21
这道题主要是考的宏调处时,编译器是怎么处理的。
编译器在这里只做简单的替换,不会给你自动加括号。
所以一般在用宏定义时,最好加上括号,才能得到想要的结果。
这这道题改成如下形式,
#define M(x) (x*x)
#define N(x,y) (M(x)+M(y))
便是写宏定义的规范形式。
这道题主要是考的宏调处时,编译器是怎么处理的。
编译器在这里只做简单的替换,不会给你自动加括号。
所以一般在用宏定义时,最好加上括号,才能得到想要的结果。
这这道题改成如下形式,
#define M(x) (x*x)
#define N(x,y) (M(x)+M(y))
便是写宏定义的规范形式。
看了 一道C++题目,求详解对于以...的网友还看了以下:
宝宝消化不良怎么办 用对这5个方法很重要 2020-03-28 …
篮球赛,现有1 2 3 4 5 6 个班,现在是1对2,3对4 ,5对6篮球什么情况下用得失分率可 2020-05-17 …
1.在九宫格里填上1、2、3,使纵列横行以及对角线的数字和都等于6.试试看最多能有几种组合?2.利 2020-06-10 …
建筑工地运来5/8吨水泥,第一天用去1/5第二天用去1/4吨,还剩多少吨?一定要是对的啊!建筑工地 2020-06-13 …
英语翻译我会给5%的佣金给你作为报酬(注:我们卖给别人设备,在设备中抽取5%作为佣金给别人.我用的 2020-06-17 …
怎样设置等对数间距的实验梯度?比如在1--3之间再设5个梯度.使得它的浓度梯度变为13这里的对数指 2020-07-21 …
1.一个正方体,用一倒切去一部分,那么剩下部分切面的形状可能(至少举出3种)2.一根细长的绳子,沿 2020-07-31 …
音乐课,聪聪坐在音乐教室的第5列第3行,用数对(5,3)表示,明明坐在聪聪正后方的第一个位置上,明明 2020-11-07 …
-5与3的绝对值的和如何理解?是-5+3=-2,还是-5绝对值5加3的绝对值3和是8?-5与3的绝对 2020-12-01 …
用matlab写个小程序如果两个连续自然数的乘积减1是素数,那么这两个连续的自然数称为亲密数对,该素 2021-02-05 …