¿De dónde viene el prefijo k para constantes?


Es una práctica bastante común que las constantes tengan el prefijo k (por ejemplo, k_pi). Pero, ¿qué significa k?

Es simplemente que c ya significaba char?

Author: Johan Kotlinski, 2011-02-16

7 answers

No lo he visto mucho, pero tal vez proviene de ciertos idiomas (los germánicos en particular) ortografía de la palabra constante - konstant .

 19
Author: misiu_mp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-16 14:28:54

Es una rareza histórica, todavía una práctica común entre los equipos a los que les gusta aplicar ciegamente estándares de codificación que no entienden.

Hace mucho tiempo, la mayoría de los lenguajes de programación comerciales se escribían débilmente; la comprobación automática de tipos, que damos por sentado ahora, todavía era principalmente un tema académico. Esto significaba que era fácil escribir código con errores de categoría; se compilaría y ejecutaría, pero se equivocaría de maneras que eran difíciles de diagnosticar. Para reducir estos errores, un tipo llamado Simonyi se sugiere que comience cada nombre de variable con una etiqueta para indicar su tipo (conceptual), lo que facilita detectar cuándo se usaron incorrectamente. Como era húngaro, la práctica se conoció como"notación húngara".

Algún tiempo después, a medida que los lenguajes tipeados (particularmente C) se hicieron más populares, algunos idiotas escucharon que esto era una buena idea, pero no entendieron su propósito. Propusieron agregar etiquetas redundantes a cada variable, para indicar su tipo declarado. El único uso para ellos es hacer es más fácil comprobar el tipo de una variable; a menos que alguien haya cambiado el tipo y olvidado actualizar la etiqueta, en cuyo caso son activamente perjudiciales.

La segunda forma (inútil) era más fácil de describir y hacer cumplir, por lo que fue adoptada ciegamente por muchos, muchos equipos; décadas más tarde, todavía se ve que se usa, e incluso se defiende, de vez en cuando.

" c "era la etiqueta para el tipo "char", por lo que no se podía usar también para "const"; por lo que se eligió "k", ya que es la primera letra de " konstant" en alemán, y es ampliamente utilizado para constantes en matemáticas.

 57
Author: Mike Seymour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-05 11:12:14

No utilice la notación húngara. Si quieres que las constantes destaquen, hazlas en mayúsculas.

Como nota al margen: hay muchas cosas en los Estándares de codificación de Google que son una mala práctica (en términos de legibilidad del código). Eso es lo que sucede cuando diseñas un estándar de codificación por comité.

 4
Author: Zac Howland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-16 13:22:16

Creo que la convención matemática fue el precedente. k se usa en matemáticas todo el tiempo como una constante.

 3
Author: sheepez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-16 12:56:03

Significa Que el valor es k-constante.

 1
Author: awm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-16 12:51:58

K significa konstant, un juego de palabras en constante. Se relaciona con los Estilos de codificación.

Es solo una cuestión de preferencia, algunas personas y proyectos los usan, lo que significa que también adoptan la notación húngara, muchos no.

Si no está seguro de lo que podría significar un prefijo o estilo, compruebe siempre si el proyecto tiene una referencia de estilo de codificación y léala.

 0
Author: Shinnok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-16 12:58:07

Es una convención, probablemente de matemáticas. Pero también hay otras sugerencias para la constante, por ejemplo Kernighan y Ritchie en su libro "The C language" sugieren escribir el nombre de las constantes en mayúsculas (por ejemplo, #define MAX 55).

 0
Author: BlackBear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-16 13:39:37