На этот вопрос уже есть ответ:
Как мы знаем, ключевое слово static
имеет несколько значений в C. В C99 добавлена возможность легального написания
void foo (int arr[static 50])
{
// ...
}
, что добавляет путаницы, и В C ++ есть статические переменные-члены и функции.
Это было бы не так сложно, если бы все использования могли быть каким-то образом связаны, но мне трудно найти эту ссылку для некоторых случаев. В частности, почему ключевое слово static
должно использоваться для изменения видимости (связывания) или что, черт возьми, оно связано с минимальным количеством элементов массива.
Так есть ли историческая причина злоупотребления ключевым словом static
или есть секретная ссылка под капотом, которая связывает все его использования?