鱼C论坛

 找回密码
 立即注册
查看: 2061|回复: 4

关于同一workspace不同file内函数的调用

[复制链接]
发表于 2014-4-22 08:56:56 | 显示全部楼层 |阅读模式
2鱼币
首先感谢大家点开来看我的这个问题,谢谢~O(∩_∩)O~~
这是学到函数这一章遇到的一个问题,在一个.c文件中引用另一个的函数时出现问题。问题如下:
新建一个win 32 console application,命名为fuction.再新建一个c++sourse file,命名为test02_1.输入代码:
/******************************
****** 值的传递(新版) *******
******************************
#include <stdio.h>
#include <conio.h>
void main()
{
int a, b, c;
int input();
int max(int x, int y);
printf("input a:");
a = input();
printf("input b:");
b = input();
c = max(a, b);
printf("a = %d, b = %d\n", a, b);
printf("max = %d\n", c);
getch();
}

int input()
{
int i, m;
m =scanf("%d", &i);
getchar();
while(m != 1)
{
  printf("input error.please input again.\n");
  printf("please input a number:");
  m = scanf("%d", &i);
  getchar();
}
return i;
}

int max(int x, int y)
{
if(x < y) x = y;
return x;
}

好,这样运行起来完全没问题。然后把这个test02_1.c注释掉,就是整个函数前后加上/********,再新建一个file,命名test03add.c,代码如下:
/******************************
****** add函数 ****************
******************************/
#include <stdio.h>
#include <conio.h>
void main()
{
float input();
float add(float x, float y);
float a, b, sum;
a = input();
b = input();
sum = add(a, b);
printf("sum = %f\n", sum);
}
float add(float x, float y)
{
x = x + y;
return x;
}

这样运行之后,输入2和3,输出却是
max = 3
但如果在test03add.c中再加入一个函数:
float input()
{
float i;
scanf("%f", &i);
return i;
}
则输出正常。这是为什么?谢谢大家~

最佳答案

查看完整内容

C语言同一工程内两个不同的函数,名字都叫做input,按照严格标准,C语言编译器在链接阶段必须报错。至于你的编译器为什么没有报错。。。这个智能解释为你的编译器在这个地方不符合C标准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-22 08:56:57 | 显示全部楼层
C语言同一工程内两个不同的函数,名字都叫做input,按照严格标准,C语言编译器在链接阶段必须报错。至于你的编译器为什么没有报错。。。这个智能解释为你的编译器在这个地方不符合C标准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-22 08:58:35 | 显示全部楼层
噢,开始的注释少打了一个反斜杠,不过这不是重点,大家别介意哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-22 16:03:25 | 显示全部楼层

用的是vc++6.0哦,第一个函数已经注释掉了,我不理解的是为什么还会运行的时候跳到那里去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-22 16:09:05 | 显示全部楼层
另外为什么跳到那里去之后不只是运行这个input()函数,连后面的max()函数也运行了:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-26 11:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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