Сегодня у меня было интервью, там они спросили меня, можем ли мы включить .c file
в исходный файл? Я сказал yes
. Поскольку несколько лет назад я видел то же самое в каком-то проекте, где они включают .c file
. Но сейчас я пытался сделать то же самое.Не можем ли мы включить файл .c?
abc.c
#include<stdio.h>
void abc()
{ printf("From ABC() \n"); }
main.c
#include<stdio.h>
#include "abc.c"
int main()
{ void abc();
return 0;
}
Получение ошибки:
D:\Embedded\...\abc.c :- multiple definition of 'abc'
Где это происходит?
Я написал abc.h файл (тело abc.h является { extern void abc(void); }
), и включен файл в abc.c
(закомментировать #include abc.c
). Отлично.
(«Работал хорошо» * с включенными предупреждениями?) –
Ну, есть несколько определений 'abc', так же, как компилятор говорит –
Сделал это много времени, ленив писать make-файл или по крайней мере сценарий для компилятора многофайловых кодов (если вы не используете IDE). При включении файла '.c' просто визуализируйте, что все содержимое этого файла будет в этой позиции, и визуализируя, что вам нужно настроить повторные определения. – phoxis