鱼C论坛

 找回密码
 立即注册
查看: 3528|回复: 11

错在哪儿

[复制链接]
发表于 2011-9-21 20:33:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>


void swap ( int a , int b )
{
        int temp;
        temp = a ;
        a = b ;
        b = temp ;
}


main()
{
        int x,y;
        x = 2 ;
        y = 3 ;
        swap( x , y );
        printf ( "%d > %d", x , y );
}







提示:Debug/1.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

1.exe - 1 error(s), 0 warning(s)

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-21 21:13:34 | 显示全部楼层
代码好像没错啊,不过这样不能实现你的功能的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-21 22:10:00 | 显示全部楼层
我运行了~没错啊!!
小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
发表于 2011-9-21 22:19:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
发表于 2011-9-22 01:33:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-9-22 08:48:31 | 显示全部楼层
还是不懂怎么回事???只能用指针么??????
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-9-22 08:50:32 | 显示全部楼层
void swap ( int a , int b )
应该是没有返回值的,是吗???这样实现 不了吗??
小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
发表于 2011-9-22 12:00:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-22 21:05:44 | 显示全部楼层
你的swap函数是值传递,,只是将两个变量的副本传入该函数,等到该函数调用完成后,两个变量本身值并未交换,正确的做法是改为地址传递,即:swap(int *p, int *q);代码详情见四楼
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-23 11:23:42 | 显示全部楼层
上面的大师们都回答得很详细了。。。可以结贴了!
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-9-24 00:11:21 | 显示全部楼层
理解了理解了。。怎么结贴?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-25 18:23:26 | 显示全部楼层
应该是没有对调用函数的声明。。。
mai函数里面应该得有对swap ( int a , int b )的声明。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-8 06:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表