У меня возникли серьезные проблемы с получением глобальных переменных и функций в рамках программы. Я попытался определить мои функции/переменные в файлах .c, а затем объявить их (с ключевым словом extern в случае переменных) в заголовках, но как VC, так и GCC дают мне нерешенные условные/неопределенные ссылочные ошибки. Например:Внешние переменные в C
glob.c
#include "glob.h"
int i = 5;
char get_letter()
{
return 'A';
}
glob.h
#ifndef GLOB_H
#define GLOB_H
extern int i;
char get_letter();
#endif
main.c
#include <stdio.h>
#include "glob.h"
int main()
{
printf("%u\t%c\n", i, get_letter());
}
Это чувствует себя излишним спросить, но он смотрит на меня, как я «Пробовал решения, представленные в существующих ресурсах, и я все еще получаю ошибки. Как я должен раз и навсегда определять глобальные переменные в C?
Что такое * точное * сообщение об ошибке? –
Вам нужно будет скомпилировать как main.c, так и glob.c, а затем соединить их вместе. Если вы скомпилируете только основной файл в исполняемый файл, у него не будет источника для этого 'i' var, потому что вы никогда не связывали его с glob.o –