Откуда берется префикс K для констант?

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

это просто c уже имел в виду char?

7 ответов


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


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

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

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

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

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


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

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


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


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


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

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

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


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