倾城公子风瑞云 百度云:宏定义帮忙看下

来源:百度文库 编辑:高考问答 时间:2024/05/03 02:01:34
设有以下宏定义:
#define N 3
#define Y(n) ( (N+1)*n)
则执行语句:z=2 * (N+Y(5+1));后,z的值为
A) 出错 B) 42 C) 48 D) 54
答案C

define仅仅以文本替换变量:
z=2*(N+Y(5+1))=2*(3+((3+1)*5+1))=48
正常情况下,每个变量都要括号起来的,这样才不会在类似“5+1”情况下出意外:
#define Y(n) (((N)+1)*(n))