Подключение .c файлов
Вот мучает меня долгое время вопрос. Почему нельзя подключать .c файлы? К примеру, у меня есть 2 файла:
main.c
#include "functions.c"
#include <stdio.h>
int main() {
printf("%d\n", Sum(1, 2));
}
и
functions.c
int Sum(int n1, int n2) {
return n1 + n2;
}
Почему когда я пытаюсь скомпилировать код, у меня вылетает кучу ошибок линковки?
Что делать?

P.S Я знаю что обычно делают это всё через заголовочные файлы, но всё же интересно почему это не сделать через .c файл. И если можно, то как?
Ответы (3 шт):
Если вы не хотите писать заголовочный файл, то не подключайте ваш .c файл, а просто напишите перед main:
#include <stdio.h>
extern int Sum(int n1, int n2);
int main(void) { // в си нужно явно указывать что функция не принимает параметров.
printf("%d\n", Sum(1, 2));
}
Либо при поключении файла, не передавайте его компилятору.
Всем спасибо за ответы. @ヒミコ подсказал не использовать Visual Studio. И это оказалось действенным способом. В данном случае для решения этой проблемы я использовал Visual Studio Code и компилятор GCC. UDP: Добавлю ещё что на самом деле ошибку ещё можно решить с помощью исключением файла из компиляции. В Visul Studio, ПКМ -> Исключить из проекта. За эту наводку спасибо так-же ヒミコ.