Название C/C++ stdlib соглашение о присвоении имен?

хороший один John Sheehan. Я всегда просто щелкнул правой кнопкой по корневой папке и выбрал черепаху-svn | журнал представления.

28
задан AraK 3 December 2009 в 01:08
поделиться

6 ответов

В C / C ++ используется известное соглашение об именах "make-stuff-up as-we-go-продвижение". В общем, единственное, что вы можете сказать о соглашении об именах стандартной библиотеки C / C ++, - это то, что в нем не используется верблюжий регистр (за исключением имен шаблонов STL C ++), используются имена классов и функций в нижнем регистре и (иногда ) использует подчеркивание для разделения слов. Но использование подчеркиваний больше похоже на C ++; В частности, C сокращает слова, например strlen , memcpy . Вероятно, это результат тенденции к использованию очень кратких имен для вещей на заре UNIX.

29
ответ дан 28 November 2019 в 03:22
поделиться

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

Если вы думаете, что это беспорядок, вам следует проверить библиотеку PHP ...

8
ответ дан 28 November 2019 в 03:22
поделиться

Я думаю, что есть несколько групп, изобретенных в разное время разными людьми и использующих несколько разные соглашения: библиотеки C, потоки, строки, STL (контейнеры + алгоритмы + итераторы). У меня такое чувство, что последнее можно рассматривать как соглашение , которое устанавливает пример для таких вещей, как boost и именование C ++ 0x.

6
ответ дан 28 November 2019 в 03:22
поделиться

Печальная правда есть - настоящего соглашения нет.

3
ответ дан 28 November 2019 в 03:22
поделиться

У меня нет ответа, но, по крайней мере, я не думаю, что C и C ++ используют одно и то же соглашение об именах.

0
ответ дан 28 November 2019 в 03:22
поделиться

Я не думаю, что существует название для любого набора соглашений об именах.

Соглашения об именах в стандартах C и C ++ различны, хотя и слабо связаны.

В частности, в библиотеке C ни одна функция или имя макроса не содержат подчеркивания (AFAICR), в отличие от библиотеки C ++.

Большинство соглашений об именах библиотек C контролировались прецедентами; он стандартизировал существующую практику (примерно по состоянию на 1984 год) с очень небольшим количеством изобретений (обработка локали через является основной).

Библиотека C ++ также была основана на прецеденте, но другой набор прецедентов, и я думаю, что можно утверждать, что STL не использовался так широко до принятия стандартом, как функции в библиотеке C.

0
ответ дан 28 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: