《C Primer Plus》第16章复习题与编程练习
《C Primer Plus》第16章复习题与编程练习
复习题
1. 下面的几组代码由一个或多个宏组成,其后是使用宏的源代码。在每种情况下代码的结果是什么?这些代码是否是有效代码?(假设其中的变量已声明)
a.
#define FPM 5280 /*每英里的英尺数*/
dist = FPM * miles;
b.
#define FEET 4
#define POD FEET + FEET
plort = FEET * POD;
c.
#define SIX = 6;
nex = SIX;
d.
#define NEW(X) X + 5
y = NEW(y);
berg = NEW(berg) * lob;
est = NEW(berg) / NEW(y);
nilp = lob * NEW(-berg);
答:
a.
有效。dist = 5280 * miles
b.
有效。plort = 4 * 4 + 4
c.
无效。
d.
有效。y = y + 5
有效,但可能有误。est = berg + 5 * lob
有效,但可能有误。est = breg + 5 / y + 5
有效(传递进去的是负值不是一个符号加变量)。 lob * (-berg) + 5