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

#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,是怎么回事,如何解决,请指教。

下面文件假设叫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;
}
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网