C语言,两个源程序,其中一个源程序文件调用另一个文件中的函数。

#include<stdio.h>#include"again.cpp"inta[10];voidmain(){inti;voidenorder();printf("请输... #include <stdio.h>
#include "again.cpp"
int a[10];
void main()
{
int i;
void enorder();
printf("请输入十个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
enorder();
printf("按升序排列为:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
}
上一个文件要调用下面文件的函数。
extern a[10];
void enorder()
{
int m;
int i,j;
for(i=0;i<10;i++)
for(j=0;j<9;i++)
if(a[j]>a[j+1])
{
m=a[j];
a[j]=a[j+1];
a[j+1]=m;
}
}
但是在编译运行的时候,出现error LNK2005: "void __cdecl enorder(void)" (?enorder@@YAXXZ) already defined,是怎么回事,如何解决,请指教。
展开
 我来答
cdyzxy
2016-11-21 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3705万
展开全部
下面文件假设叫b.c,编写一个b.h,内容为:void enorder();
假设上面文件为a.c,前面加一句:#include "b.h"或不用b.h前面加句void enorder();也成
b.c中第1句改为:extern int a[10];
void enorder();在头文件b.h中写成extern void enorder();也成
追问
您能不能把几种方法分开写一写?连在一起写我看不太懂,试出来也是错的。
追答
这样不成吗,将两个文件都加入同一个工程中编译
#include

extern void enorder();
int a[10];

void main() {
int i;
printf("请输入十个整数:\n");
for(i=0;ia[j+1])
{
m=a[j];
a[j]=a[j+1];
a[j+1]=m;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式