Другие языки программирования и технологии

Начинаю изучать С++. Вопросы про спецификаторы класса памяти.

Локальный контекст - значит переменная видна только в пределах заданной области. Как правило - внутри блока {}
Контекст файла - скорее всего имеется в виду единица компиляции (т. е. то, что получится после препроцессора. ) Тут, если что-то определено со спецификатором static, будет видно только внутри этой единицы компиляции. В другой единице компиляции может быть другой static ресурс - переменная или функция с таким же именем и это не вызовет ошибки на линковке.
Внешний тип компоновки - скорее всего объявление со спецификатором extern. При этом в таблице имен просто делается упоминание о том, что есть ресурс с таким именем, но реально память под него не выделяется. Поэтому, в одной (и только одной! ) из единиц компиляции должно быть не только объявление, но и определение ресурса.

typedef - просто способ ввести более удобное название для другого типа.
Степан Степанович
Степан Степанович
84 351
Лучший ответ
Книга не очень. Советую С. Дэвис - C++ для чайников. Очень толковая книга.
А если в двух словах:
- локальную переменную видно только внутри блока между фигурными скобками
- объявленную глобально через static - только внутри этого файла
- внешняя переменная объявлена в другом файле, но чтобы ее видеть в этом, пишут extern
- typedef просто объявляет новый тип на основе известного
Еще раз, книга ужасная и терминология в ней левая.