AFAIK, любое объявление переменной или функции в области файлов имеет внешнюю привязку по умолчанию. static
означает "он имеет внутреннюю связь", extern
- "он может быть определен в другом месте", а не "имеет внешнюю связь".
Если да, зачем нам ключевое слово extern
? Другими словами, в чем разница между int foo;
и extern int foo;
(область файла)?