新手问题—关于C语言调用函数报错

anyexc 2008-01-11 01:00:27
我把被调用函数放在main()之前,程序无问题,但是只要放在main()函数后就报错~
代码:
#include "stdio.h"
void main()
{
int a,b;
a=2;
b=5;
swap(a,b);
printf("main_a=%d,main_b=%d\n",a,b);
}

swap(int x,int y)//这个放在main()之前无问题,放在其后报错。就是现在这样。
{
int t;
t=x;
x=y;
y=t;
printf("swap_x=%d,swap_y=%d\n",x,y);
}

报错信息:
error C2065: 'swap' : undeclared identifier
error C2373: 'swap' : redefinition; different type modifiers

我看教程上就是这么写的,不过教程上用的时tc,我用的vc6.0

请问这个时什么原因呢?应该如何修改?
谢谢~

...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
anyexc 2008-01-11
  • 打赏
  • 举报
回复
也许是在后面说,但是教程的ppt里展示的程序代码中确实没有说要调用函数时,要先申明,也没有申明被调用函数的代码。
莫非tc中就不用申明。。还是我用的教程太老了。
我是从黑客手册合订本的光盘中找到的c语言的教程。

谢谢两位的解答。
fpsonly 2008-01-11
  • 打赏
  • 举报
回复

#include "stdio.h"
void swap(int &x,int &y); //传入引用类型否则不会交换
void main()
{
int a,b;
a=2;
b=5;
swap(a,b);
printf("main_a=%d,main_b=%d\n",a,b);
}

void swap(int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
printf("swap_x=%d,swap_y=%d\n",x,y);
}
shaoze5 2008-01-11
  • 打赏
  • 举报
回复
函数使用都要申明的啊。不可能没有说,要不你用的就是劣质的教程。
anyexc 2008-01-11
  • 打赏
  • 举报
回复
int swap(int x,int y);
是在main()中加入这句吗?
晕了,教程里没有说这个,莫非教程要留一手。
fpsonly 2008-01-11
  • 打赏
  • 举报
回复
把函数实现放在调用后面是可以,但是在调用之前一定要先声明

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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