我的文件是
// main.c
#include "add.c"
int main(void) {
int result = add(5,6);
printf("%d\n", result);
}
和
// add.c
int add(int a, int b) {
return a + b;
}
答案 0 :(得分:23)
使用#include "ClasseAusiliaria.c"
[不要使用尖括号(<>)]
和I prefer save file with .h
extension位于同一目录/文件夹中。
#include "ClasseAusiliaria.h"
答案 1 :(得分:7)
像这样更改Main.c
#include <stdlib.h>
#include <stdio.h>
#include "ClasseAusiliaria.h"
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}
像这样创建ClasseAusiliaria.h
extern int addizione(int a, int b);
然后我编译并运行了你的代码,我得到了
的输出11
答案 2 :(得分:5)
你必须申报
int add(int a, int b);
(注意分号)
在头文件中,并将文件包含在两个文件中。
将它包含到Main.c中会告诉编译器应该如何调用该函数。
包含在第二个文件中将允许您检查声明是否有效(如果声明和实现不匹配,编译器会抱怨)。
然后你必须将两个* .c文件编译成一个项目。细节依赖于编译器。
答案 3 :(得分:3)
制作文件classAusiliaria.h
并在其中提供您的方法签名。
现在不包括.c文件,而是包含此.h文件。
答案 4 :(得分:3)
你可以包含.c文件,逻辑上没问题,但是根据标准来隐藏函数的实现但是提供二进制文件,使用头文件和源文件技术,其中头文件用于定义函数签名,其中源文件具有实现。当您将项目出售到外部时,您只需发送标题和二进制文件(libs和dll),以便隐藏函数实现背后的主要逻辑。
这里的问题是您必须使用“”而不是&lt;&gt;因为您要包含一个文件,该文件位于发生包含的文件所在的同一目录中。这对.c和.h文件都很常见
答案 5 :(得分:3)
这里有很多很棒的贡献,但是让我尽量少添加我的。
我注意到的第一件事是,你没有在主文件中做出任何承诺,你将创建一个名为add()的函数。这个计数在主文件中完成了这样做:
int add(int a, int b);
在main函数之前,主函数会识别add函数并尝试查找其可执行代码。 基本上你的文件应该是
MAIN.C
int add(int a, int b);
int main(void) {
int result = add(5,6);
printf("%d\n", result);
}
和 // add.c
int add(int a, int b) {
return a + b;
}
答案 6 :(得分:2)
您不应该在其他c文件中包含c文件。而是创建一个头文件,在该文件中声明要调用的函数。 像这样: 文件ClasseAusiliaria.h:
int addizione(int a, int b); // this tells the compiler that there is a function defined and the linker will sort the right adress to call out.
在Main.c文件中,您可以包含新创建的头文件:
#include <stdlib.h>
#include <stdio.h>
#include <ClasseAusiliaria.h>
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}
答案 7 :(得分:2)
write main.c like this -
caution : while linking both main.0 and ClasseAusiliaria.o should be
available to linker.
#include <stdlib.h>
#include <stdio.h>
extern int addizione(int a, int b)
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}