Почему тяжелое использование аббревиатуры в C/С++?
Я читал на C и С++ в последнее время и не могу избавиться от чувства, что программисты C/С++ используют аббревиатуру для чрезмерного использования в именах переменных и функций. Я не вижу причины, почему это было бы полезно, поскольку оба являются скомпилированными языками. Практически весь код, с которым я столкнулся, использует аббревиатуру больше, чем на других языках (мой личный опыт, конечно).
Итак, тогда вопрос становится таким; есть ли причина, по которой вы хотели бы использовать сокращения в C/С++? Существуют ли проблемы с производительностью с использованием более длинных имен переменных или это просто соглашение?
EDIT: Похоже, я открыл банку червей здесь. Я надеялся на ответ "да/нет", а не обсуждение стиля кодирования.
Ответы
Ответ 1
В основном это соглашение.
Была некоторая историческая необходимость, поскольку ранние компиляторы C не гарантировали, что идентификаторы были значительными для более чем 8 (или, может быть, даже 6) символов в некоторых случаях (вызывая MyFantasticFoo
и MyFantasticBar
, где считается равным компилятору). Современные компиляторы не имеют таких ограниченных ограничений, см. этот ответ для деталей.
Сегодня я думаю, что это скорее проблема конвенции/стиля, так как код C часто бывает кратким.
Ответ 2
Это похмелье с первых дней программирования - до того, как стало понятно, что сложная часть программирования не пишет код, а читает его.
Ответ 3
Во-первых, я не считаю это общим правилом; как Стив Джессоп
напоминает нам в комментарии, другие языки, такие как APL,
традиционно используют более короткие имена и Fortran (по крайней мере, когда
Я использовал его) ограничил максимальную длину имени до шести.
Больше, чем язык, я считаю, что домен играет определенную роль. Для
Например, Unix-программисты имеют тенденцию использовать более короткие имена, чем Windows
программистов, несомненно, потому, что системный API использует более короткие
(частично, по крайней мере, потому что Unix намного старше, и
ранее линкеры не могли обрабатывать более шести или восьми
символов, хотя это не объясняет creat
вместо
create
). У математики также есть традиция сокращения
имена: используя имена типа index
, а не i
для индекса
при работе с математическими выражениями делает код менее
ясно и пояснительно, поскольку традиционный символ для
первый индекс в математике равен i
. И многие другие домены имеют больше или
менее установленные аббревиатуры или сокращения: когда я работал
в телекоммуникациях спецификация doc (от клиента) говорила о
TP и CX, а не точки окончания и крест
соединения; и в моей нынешней банковской среде, даже вне
программы, никто не будет писать "своп дефолта по кредиту" или
"обеспеченное долговое обязательство", а не просто CDS или CDO.
Поэтому, если вы видите более короткие имена на С++, это может быть из-за того, что
вы смотрите на код, который делает разные вещи, и приходит
из области, где аббревиатуры обычны даже вне
среды программирования.