18 CC++
18 ifdef-else-endififndef-else-endifif-else-endiftypedeftypedef
18 includetypedef
#define ##define#define PI 3.1415926
17-1 #define TWO 2 #define MSG "I love c language."#define FMT " number is %d\n"main(){ int number=TWO; printf(FMT, number); printf("%s\n",MSG);}
17-2 #define PI 3.14main(){ float R=16.99; printf("S=PI*R*R=%f\n",PI*R*R);}
17-3 #define R 3.0#define PI 3.1415926#deinfe L 2*PI*R /* RPIL */#define S PI*R*R /* RPIS */main() {printf("L=%f\nS=%f\n",L,S); }
17-4
#define PR printf#define NL "\n"#define D "%d "#define D1 D NL#define D2 D D NL#define D3 D D D NL#define D4 D D D D NL#define S "%s"
main(){int a,b,c,d char string[]="This is a string." a=1b=2c=3d=4 PR(D1,a) PR(D2,a,b) PR(D3,a,b,c) PR(D4,a,b,c,d) PR(S,string)}
C #define #undef
#define () , #define max(x,y) x>y?x:y
17-5 #include "stdio.h"#define max(x,y) x>y?x:ymain(){ int a,b,c,m scanf("%d%d%d",&a,&b,&c) m=max(a,b) /* maxab */ printf("max=%d\n",max(m,c))/* mc */}
()
17-6 #define PI 3.1415926#define CIRCLE(R,L,S) L=2*PI*RS=PI*R*Rmain(){ float r,l,s printf("Input r:") scanf("%f",&r) CIRCLE(r,l,s) /* */ printf("L=%f,S=%f\n",l,s)}
Cinclude #include ""
17-7 userdef.he1707.cuserdef.h#define PRINT printf /* PRINT */#define INPUT scanf /* INPUT */#define PI 3.1415926 /* PI */e1707.c#include "userdef.h"main(){float s,r PRINT("r=") INPUT("%f",&r) s=PI*r*r PRINT("AREA=%f\n",s)}
#include "stdio.h" #include includeinclude
ifdef-else-endif #ifdef1#else2#endif#define122#else#ifdef#endif
17-8 1 #define NUM okstruct stu { int num char *name char sex float score }*psmain(){ps=(struct stu*)malloc(sizeof(struct stu)) ps->num=102 ps->name="Zhang ping" ps->sex='M' ps->score=62.5 #ifdef NUM printf("Number=%d\nScore=%f\n",ps->num,ps->score) #else printf("Name=%s\nSex=%c\n",ps->name,ps->sex) #endif free(ps)}
ifndef-else-endif #ifndef1#else2#endififdefifndef#define12
if-else-endif #if1#else2#endif012
17-9 2 #define R 1main(){float x,s printf ("input a number: ") scanf("%f",&x) #if R s=3.14159*x*x printf("Area of round is: %f\n",s) #else s=x*x printf("Area of square is: %f\n",s) #endif}
typedefCtypedef typedef typedef int INTEGER typedef float REAL
-1.2.3.4.5.6. 7.typedef