Я пытаюсь узнать о ключевом слове extern.
Я создал этот файл try2.cpp
#include <stdio.h>
#include <conio.h>
extern int a;
int main()
{
a = 5;
printf("%d", a);
getch();
return 0;
}
И этот try1.cpp
int a;
int main()
{
a = 10;
return 0;
}
Но в try2.c возникает ошибка: a не определено. Оба файла находятся в папке BIN TurboC.
В чем проблема?
В вашем try2.cpp
вас есть:
extern int a;
Это говорит компилятору, что a
определяется извне - то есть не в try2.cpp
. Таким образом, вы должны определить его внешне, и для этого вам понадобится второй.cpp файл - скажем, вы a.cpp
файл a.cpp
который содержит:
int a;
Затем вы можете скомпилировать каждый из файлов try2.cpp и a.cpp:
tc -c try2.cpp
tc -c a.cpp
Затем вам нужно связать их, указав путь к стандартным библиотечным файлам CS.lib (найдите его в Проводнике Windows, если ниже не работает - обновление \TC\LIB\
path ниже):
tlink try2.obj + a.obj, program.exe, , \TC\LIB\CS.lib
Это должно создать новый program.exe
для запуска.
Вы должны получить лучший компилятор, хотя....
extern
говорит, что что-то определено в другом месте. Вы не определяете его в другом месте (в этой программе). Линкера справедливо жалуется на это.