小编Ray*_*ter的帖子

宏SWAP(t,x,y)交换类型为t的两个参数

所以我基本上试图创建一个交换两个t类型参数的SWAP(t,x,y)宏.当这两个参数形成时,我试图想到解决这个问题

v [i ++]和w [f(x)],即SWAP(int,v [i ++],w [f(x)]).

下面的代码基本上崩溃了......

#define SWAP(T,x,y) {T *p = x; T *q = y; T z = *p; *p = *q; *q = z;}

int f (int x){
    return (0-x);
}

int main(void) {

int v[] = {1,2,3};
int i = 0;

int w[] = {4,5,6};
int x = -1;

int *p = v;
int *q = w;

SWAP(int*, v[i++],w[f(x)]);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

什么想法可能会出错?

c swap pointers c-preprocessor

1
推荐指数
1
解决办法
5534
查看次数

标签 统计

c ×1

c-preprocessor ×1

pointers ×1

swap ×1