В C99 6.7.1 говорится
Максимум один спецификатор класса хранения может быть указан в спецификаторах объявления в объявлении.
Я знаю, что extern
и static
являются спецификаторами класса хранения, но extern
в основном указывает компилятору, что переменная объявлена в другом месте, и беспокоиться об этом позже. extern
и static
для меня НЕ взаимоисключающие. Вполне возможно, что что-то может быть extern
и static
.
Почему мы не можем использовать extern
и static
вместе? Есть ли веская причина, кроме того, что стандарт просто говорит «нет»?