同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库
A.16 第16章
1.a.dist=5280*miles;是合法的。
b.plort=4*4+4;是合法的。但是如果用户实际上是想要4*(4+4),他应该使用#define POD(FEET+FEET)oc.nex==6;;是合法的,但是没有意义。显然,用户忘记了他是在为预处理器编写代码而不是用C编写代码。d.y=y+5;是合法的。berg=berg+5*lob;是合法的,但是可能得不到想要的结果。est=berg+5/y+5;是合法的,但是可能得不到想要的结果。nilp=lob*-berg+5;是合法的,但是可能得不到想要的结果。2.#define NEW(X)((X) + 5)
3.#define MIN(X,Y)((X) <(Y) ?(x):(Y))
4.#define EVEN一GT(X,Y)((X) >(Y) &&(X) % \ 2 == 0 ? 1: 0)
5.#define PR(X,Y)printf(#X ″ is %d and ″ #Y ″ is &d\n″, X, Y)
因为在这个宏中X和Y绝不会被任何运算符(例如乘法)作用,所以不需要使用圆括号。
6.a.#define QUARTERCENTURY 25
b.#define SPACE ′ ′c.#define PS()putchar(′ ′)或者 #define PS()putchar(SPACE)d.#define BIG(X)((X) + 3)e.#define SUMSQ(X,Y)((X) *(X) +(Y) *(Y))7.试试这样:
或者,如果您的实现不能识别地址的%p说明符,可以使用%u或%lu。
8.使用条件编译指令。一种方法是使用#ifinef:
9.
10.argv参数应该被声明为char *argv[]。命令行参数被存储为字符串,所以程序应该首先把argv[l]中的字符串转换为类型为double的值,例如,可以使用stdlib.h库中的atof()函数。应该为sqrt()函数包含math.h头文件。程序在求平方根之前应进行检查参数是否为负值。
11.a.应该像这样进行函数调用:
b.下面是一个适用的比较函数:12.a.应该像这样进行函数调用:
b.应该像这样进行函数调用:请支持我们,让我们可以支付服务器费用。
使用微信支付打赏
