一个类似于C++模板的问题

yitianyitian 2006-04-27 07:55:27
int SWAP (int &A ,int &B)
{
int TEMP;
TEMP=A;
A=B;
B=TEMP;
}
象这样的交换2个值的函数需要为每种数据类型定义一个。
在C++中可以用摸板解决。

现求在 C中的 类似的解决方法。
在线等 (最好给出代码)
...全文
257 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2006-04-28
  • 打赏
  • 举报
回复
最好还是加上括号吧
#define Myswap(a,b)\
{\
(a)=(a)+(b);\
(b)=(a)-(b);\
(a)=(a)-(b);\
}
Tdxdy 2006-04-28
  • 打赏
  • 举报
回复
如果是字符串...
Tdxdy 2006-04-28
  • 打赏
  • 举报
回复
yitianyitian(一天一天) ( 一级(初级)) 信誉:100

嘿嘿,比我快,C实现C++的模版,有局限性,如楼上兄弟所说
xlsue 2006-04-27
  • 打赏
  • 举报
回复
模板也是宏
jixingzhong 2006-04-27
  • 打赏
  • 举报
回复
修改如下:

#define Myswap(a,b)\
{\
a=a+b;\
b=a-b;\
a=a-b;\
}
jixingzhong 2006-04-27
  • 打赏
  • 举报
回复
system 函数包含 stdlib.h ...
逸学堂 2006-04-27
  • 打赏
  • 举报
回复
C能够替换模板,可能只有宏了。
但是宏不能完全替换。比如lz提到问题。
dch4890164 2006-04-27
  • 打赏
  • 举报
回复
问一下楼主
memcpy算不算啊
两次就可以达到目的.
你这个问题太有挑战性了.
期待标准答案
yitianyitian 2006-04-27
  • 打赏
  • 举报
回复
有个比严重的问题。
这个只能用于 int.和char
用 double,或者float 是编译报错
F:\vctemp\diao.cpp(15) : error C2296: '^' : illegal, left operand has type 'double'
F:\vctemp\diao.cpp(15) : error C2297: '^' : illegal, right operand has type 'double'
F:\vctemp\diao.cpp(15) : error C2296: '^' : illegal, left operand has type 'double'
F:\vctemp\diao.cpp(15) : error C2297: '^' : illegal, right operand has type 'double'
F:\vctemp\diao.cpp(15) : error C2296: '^' : illegal, left operand has type 'double'
F:\vctemp\diao.cpp(15) : error C2297: '^' : illegal, right operand has type 'double'
dch4890164 2006-04-27
  • 打赏
  • 举报
回复
牛!
yitianyitian 2006-04-27
  • 打赏
  • 举报
回复
高手。麻烦透露下 system在哪个头文件里面
sankt 2006-04-27
  • 打赏
  • 举报
回复
上面有点小问题,修正一下.

#include<stdio.h>
#include<stdlib.h>

#define Myswap(a,b)\
{\
a=a^b;\
b=a^b;\
a=a^b;\
}

int main()
{
int a=8;
int b=5;
Myswap(a,b);
printf("a=%d,b=%d\n",a,b);

system("pause");
return 0;
}
sankt 2006-04-27
  • 打赏
  • 举报
回复
#define Myswap(a,b)\
{\
a=a^b;\
b=a^b;\
a=a^b;\
}

int main()
{
int a=8;
int b=5;
myswap(a,b);
printf("a=%d,b=%d\n",a,b);

system("pause");
return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧