Откуда берется префикс k для констант? - PullRequest
31 голосов
/ 16 февраля 2011

довольно распространенная практика, когда константы имеют префикс k (например, k_pi). Но что значит k?

Это просто, что c уже означало char?

Ответы [ 7 ]

69 голосов
/ 16 февраля 2011

Это историческая странность, все еще распространенная практика среди команд, которые любят слепо применять стандарты кодирования, которых они не понимают.

Давным-давно большинство коммерческих языков программирования были слабо типизированы;автоматическая проверка типов, которую мы считаем само собой разумеющимся, все еще была в основном академической темой.Это означало, что было легко написать код с ошибками категории;он компилируется и запускается, но идет не так, как это трудно диагностировать.Чтобы уменьшить эти ошибки, глава под названием Simonyi предложил начинать каждое имя переменной с тега, обозначающего его (концептуальный) тип, что облегчает его обнаружение при неправильном использовании.Поскольку он был венгром, эта практика стала называться «венгерской нотацией».

Некоторое время спустя, когда печатные языки (особенно С) стали более популярными, некоторые идиоты слышали, что это хорошая идея, но не сталипонять его цель.Они предложили добавить избыточные теги к каждой переменной, чтобы указать ее объявленный тип.Их можно использовать только для упрощения проверки типа переменной;если кто-то не изменил тип и не забыл обновить тег, в этом случае он активно наносит вред.

Вторая (бесполезная) форма была проще описать и применить, поэтому она была слепо принята многими, многими командами;спустя десятилетия вы все еще видите, что он время от времени использовался и даже пропагандировался.

«c» был тэгом для типа «char», поэтому его также нельзя было использовать для «const»;поэтому было выбрано «k», так как это первая буква «konstant» в немецком языке и широко используется для констант в математике.

22 голосов
/ 16 февраля 2011

Я не так уж много видел, но, возможно, это происходит от написания некоторых языков (в частности, германских) слова constant - konstant .

4 голосов
/ 16 февраля 2011

Не используйте венгерскую нотацию. Если вы хотите, чтобы константы выделялись, сделайте все заглавными.

В качестве примечания: в стандартах кодирования Google есть много вещей, которые плохо практикуются (с точки зрения читабельности кода). Вот что происходит, когда вы разрабатываете стандарт кодирования комитетом.

4 голосов
/ 16 февраля 2011

Я думаю, что математическое соглашение было прецедентом.k всегда используется в математике как некоторая константа.

2 голосов
/ 16 февраля 2011

Это означает, что значение k-onstant.

0 голосов
/ 16 февраля 2011

Это соглашение, вероятно, из математики. Но есть и другие предложения для констант, например, Керниган и Ричи в своей книге «Язык Си» предлагают писать имя констант заглавными буквами (например, #define MAX 55).

0 голосов
/ 16 февраля 2011

K обозначает константу, игру слов о константе. Это относится к стилям кодирования.

Это просто вопрос предпочтений, некоторые люди и проекты используют их, что означает, что они также принимают венгерскую нотацию, а многие нет. Это не так важно.

Если вы не уверены, что может означать префикс или стиль, всегда проверяйте, есть ли в проекте ссылка на стиль кодирования, и читайте это.

...