给出下面程序宏展开之后的形式及其运行结果。 #include <stdio.h> #define FUDGE(k) k+3.14159266 #define PR(a) printf("a=%d\t",(int)(a)) #define PRINT(a) PR(a);putchar('\n') #define PRINT2(a,b) PR(a);PRINT(b) #define PRINT3(a,b,c) PR(a);PRINT2(b,c) #define MAX(a,b) ((a)<(b)?(b):(a)) int main() { { int x=2; PRINT(x*FUDGE(2)); } { int cel; for(cel=0;cel<=100;cel++) PRINT2(cel,9.15*cel+32); } { int x=1,y=2; PRINT3(MAX(x++,y),x,y); PRINT3(MAX(x++,y),x,y); } }
时间: 2023-06-18 15:05:49 浏览: 156
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
程序宏展开后的形式如下:
```c
#include <stdio.h>
#define FUDGE(k) k+3.14159266
#define PR(a) printf("a=%d\t",(int)(a))
#define PRINT(a) PR(a);putchar('\n')
#define PRINT2(a,b) PR(a);PRINT(b)
#define PRINT3(a,b,c) PR(a);PRINT2(b,c)
#define MAX(a,b) ((a)<(b)?(b):(a))
int main()
{
{
int x=2;
PRINT(x*2+3.14159266);
}
{
int cel;
for(cel=0;cel<=100;cel++)
PRINT2(cel,9.15*cel+32);
}
{
int x=1,y=2;
PRINT3(((x++)<(y)?(y):(x++)),x,y);
PRINT3(((x++)<(y)?(y):(x++)),x,y);
}
}
```
运行结果如下:
```
a=8
a=0 32
a=2 2
a=4 3
```
阅读全文