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,是怎么回事,如何解决,请指教。 展开
#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();也成
假设上面文件为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;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询