Мои файлы
// 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;
}
Мои файлы
// 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;
}
используйте #include "ClasseAusiliaria.c"
[Не используйте угловые скобки (<>)]
и я предпочитаю сохранить файл с расширением .h
в той же директории/папке.
#include "ClasseAusiliaria.h"
Измените 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 сообщит компилятору, как должна вызываться функция. Включение во второй файл позволит вам проверить правильность декларации (компилятор будет жаловаться, если декларация и реализация не совпадают).
Затем вы должны скомпилировать оба *.c файла в один проект. Детали зависят от компилятора.
создайте файл classAusiliaria.h
и в нем укажите свои сигнатуры методов.
Теперь вместо включения файла .c этот файл .h.
Вы можете включить файлы .c, без проблем с ним логически, но в соответствии со стандартом, чтобы скрыть реализацию функции, но чтобы обеспечить использование двоичных файлов, методов заголовков и исходных файлов, где заголовки используются для определения функции-сигнатуры, где в качестве исходных файлов реализована реализация. Когда вы продаете свой проект за пределами, вы просто отправляете заголовки и двоичные файлы (libs и dll), чтобы скрыть основную логику реализации вашей функции.
Здесь проблема заключается в том, что вы должны использовать "" вместо < > , поскольку вы включаете файл, который находится внутри того же каталога, в файл, в котором происходит включение. Он является общим для файлов .c и .h
Здесь много больших вкладов, но позвольте мне добавить мои, не тем меньше.
Прежде всего я заметил, что вы не сделали никаких promises в главном файле, что вы собираетесь создать функцию, известную как 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;
}
вы не должны включать 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);
}
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);
}