Я определяю переменную в файле C: int x
, и я знаю, что я должен использовать extern int x
, чтобы объявить ее в других файлах, если я хочу использовать ее в других файлах.
Мой вопрос: где я должен объявить его в других файлах?
-
Вне всех функций
// in file a.c: int x; // in file b.c: extern int x; void foo() { printf("%d\n", x); }
-
внутри функции (-ов), которая будет ее использовать?
// in file b.c: void foo() { extern int x; printf("%d\n", x); }
Мои сомнения:
- Какой из них правильный?, или
- Что предпочтительнее, если оба правильны?