Я знаю, что ключевое слово static
делает функцию C / переменную областью файла.И я читал, что если я хочу создать переменную глобальную область видимости (доступ к которой осуществляется несколькими файлами), я должен сделать:
в файле .c
:
int my_global_var;
// main()....
в файле .h
:
extern int my_global_var;
Таким образом, любой из них будет включать мой .h
файл, который сможет ссылаться на my_global_var
, который уже extern
ed.
ИЯ также прочитал, что это требуется и для функций, но я использую gcc
4.x, и я не extern
, функция в файле .h и другие программы могут успешно link
it.
Итак, вопрос в том ...
Является ли поведение связывания нестатических функций заданным по умолчанию или я должен extern
нестатических функций придерживаться стандарта ??