我的文件是
// main.c
#include <ClasseAusiliaria.c>
int main(void) {
int result = add(5,6);
printf("%d\n", result);
}
和
// add.c
int add(int a, int b) {
return a + b;
}
使用双引号#include "ClasseAusiliaria.c"
[不要使用尖括号(< >
)]
我更喜欢在相同的目录/文件夹中保存带有.h
扩展名的文件。 [参考链接]
简而言之:
请将#include <ClasseAusiliaria.c>
替换为
#include "ClasseAusiliaria.c"
。
请将您的 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
int add(int a, int b);
(注意分号),并将该文件包含到两个文件中。
将其包含到“Main.c”中,可以告诉编译器如何调用该函数。
将其包含到第二个文件中,可以验证声明的有效性(如果声明和实现不匹配,编译器会报错)。这里有很多优秀的贡献,但还是让我来增加我的。
首先我注意到的是,在主文件中你没有承诺你将创建一个名为add()的函数。这可以在主文件中像这样完成:
int add(int a, int b);
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;
}
classAusiliaria.h
的文件,在其中提供你的方法签名。""
而不是<>
,进行#include"classAusiliaria.h"
。 - Kraken 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);
}
您不应该在其他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.
#include <stdlib.h>
#include <stdio.h>
#include <ClasseAusiliaria.h>
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}
ClasseAusiliaria.h
)中导出签名为int addizione(int a, int b)
的函数。 - Massimiliano