Ответы с форумов MSDN

Длина идентификаторов в C

Date: 11.12.2017 16:03:38

Стандарты языка задают минимальное поддерживаемое число значащих символов, которое может быть увеличено реализацией компилятора:

С89: 31 для внутренних, 6 - для экспортируемых через границы модулей
С99, С11: 63 для внутренних, 31 - для экспортируемых через границы модулей

Реализации:

Microsoft C - ограничение в макс. 247 символов по умолчанию для тех и других, изменяется ключом /H (https://docs.microsoft.com/ru-ru/cpp/c-language/c-identifiers)

GCC - нет ограничения для внутренних, а также и для экспортируемых на большинстве распространенных платформ, насколько я знаю.

Таковы факты. Что касается проблемы перегруженности глобального пространства имен, в С она решается двумя путями:

- Подключением к каждому модулю минимального количества объявлений. Вместо включения одного гигантского заголовочного файла во все модули, объявления разбиваются на более мелкие заголовки и в каждый модуль подключается только то, что нужно.

- Система префиксов. Например, все функции OpenGL начинаются с gl. Это уменьшает вероятность совпадений для функций, делающих одно и то же (например, одна будет abCreateVector, а другая xyCreateVector), без существенного увеличения длины идентификаторов.

Обычно 31 символ вполне должно хватать. С более длинными идентификаторами уже читаемость ухудшается, а не улучшается. А так да, для сильно сложных (архитектурно) проектов чистый си мало приспособлен. Он больше для отдельных, особо важных модулей, а вся обвязка на другом чем-то должна писаться.



Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub