|
這個程式寫法好怪,有人可以幫忙解釋一下嗎?尤其是上面的define的用法真的很特別,麻煩大大了
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define PR(fmt,val)printf(#val"=%"#fmt"\t,(val))
#define LN putchar('\n')
#define PN1(f,a)PR(f,a),LN
#define PN2(f,a,b)PR(f,a),PN1(f,b)
#define PN3(f,a,b,c)PR(f,a),PN2(f,b,c)
#define PN4(f,a,b,c,d)PR(f,a),PN3(f,b,c,d)
using namespace std;
int a[2][2]={{17,11},{23,25}};
int (*ap)[2]=a;
int *b[2]={a[0],a[1]};
int **p=b;
int *c=a[0];
int *s=&a[1][0];
int *r=*(a+1)+1;
int i;
int main(int argc, char *argv[])
{
PN2(d,(*ap)[0],(*ap)[1]);
ap++;
PN2(d,(*ap)[0],(*ap)[1]);
LN;
while(**P++=*r---*s);
for(i=0;i<4;i++)
PN1(d,c)
int**m=(int**)malloc(4*sizeof(int*));
m[0]=(int*)malloc(12*sizeof(int));
for(i=1;i<4;i++)
m=b[0]+i*3;
for(int i=0;i<4;i++)
for(int j=0;j<3;j++)
m[j]=i*j;
PN3(d,m[2][2],m[3][0],m[1][2]);
system("PAUSE");
return EXIT_SUCCESS;
} |
|