我尝试在C中编写程序,我不能使用.h中的函数而不包括.c文件。如果我在包括.h之后加入.c就行了。我得到了#34;未定义的引用..." .h。
中定义的每个函数的错误main.c中:
#include "mp.h"
//#include "mp.c"
int main()
{
int n;
printf("Unesite broj clanova niza: ");
scanf("%d",&n);
int *a=(int *)malloc(n*sizeof(int));
if (a==NULL) exit(0);
unos(a,n);
sortiranje(a,n,rastuci);
stampanje(a,n);
sortiranje(a,n,opadajuci);
stampanje(a,n);
return 0;
}
mp.h:
#ifndef MP_H_INCLUDED
#define MP_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
enum tip_sort {opadajuci,rastuci};
void unos(int *, int);
void sortiranje(int *, int, enum tip_sort);
void stampanje(int *, int);
#endif // MP_H_INCLUDED
mp.c:
#include "mp.h"
void unos(int *a, int n){
...
}
void sortiranje(int *a, int n, enum tip_sort t){
...
}
void stampanje(int *a, int n){
...
}
答案 0 :(得分:2)
您所看到的是链接器错误。我想,你正试图单独编译main.c
。
您的编译语句应该类似于
gcc main.c mp.c -o output
是的, 不 #include
.c
(来源)文件。源文件应该被编译并链接在一起以形成二进制文件。
注意:另外,请do not cast malloc()
的返回值。