关于用宏来定义函数。。
有一个函数的返回值是一个结构类型。。那么怎么把它改成一个用宏定义的函数呢。
typedef struct{ double real; double imag; }complix_t; #define prefix_inc(a) (++a.real,a) #define max_mod(a,b) ((a.real*a.real + a.imag*a.imag) > (b.real*a.real + b.imag*a.imag) ? a: b) #define add2(a,b,sum) {sum.real = a.real + b.real; sum.imag = a.imag + b.imag;} int main(int argc, char *argv[]) { complix_t a={1,1}, b={2,2}, max, sum; max = max_mod (a,b); printf("%lf+%lf*i\n",max.real,max.imag); add2(a,b,sum); printf("%lf+%lf*i\n",sum.real,sum.imag); return 0; }