常量以
k
为前缀(例如 k_pi
)是一种非常常见的做法。但是k
是什么意思?
难道
c
已经意味着char
吗?
这是一个历史怪事,在喜欢盲目应用他们不理解的编码标准的团队中仍然是常见做法。
很久以前,大多数商业编程语言都是弱类型的;我们现在认为自动类型检查是理所当然的,但它仍然主要是一个学术话题。这意味着很容易编写带有类别错误的代码;它可以编译并运行,但会出现难以诊断的错误。为了减少这些错误,一位名叫 Simonyi 的小伙子建议您在每个变量名称开始时添加一个标签来指示其(概念)类型,以便更容易发现它们何时被误用。由于他是匈牙利人,这种做法被称为“匈牙利表示法”。
一段时间后,随着类型语言(尤其是 C)变得越来越流行,一些被误导的人听说这是一个好主意,但不明白其目的。他们建议为每个变量添加冗余标签,以指示其声明的类型。它们的唯一用途是更容易检查变量的类型;除非有人更改了类型并忘记更新标签,在这种情况下它们是非常有害的。
第二种(无用的)形式更容易描述和执行,因此被很多很多团队盲目采用;几十年后,您仍然会不时地看到它被使用,甚至被提倡。
“c”是“char”类型的标记,因此它不能也用于“const”;所以选择了“k”,因为这是德语中“konstant”的第一个字母,并且广泛用于数学中的常数。
我没见过那么多,但也许它来自某些语言(特别是日耳曼语)单词“constant”的拼写 - konstant。
顺便说明一下:Google 编码标准中的很多内容都是不好的做法(就代码可读性而言)。这就是当您由委员会设计编码标准时会发生的情况。
这只是一个偏好问题,有些人和项目使用它们,这意味着他们也接受匈牙利表示法,但很多人不接受。这并不重要。
如果您不确定前缀或样式可能意味着什么,请务必检查项目是否有编码样式参考并阅读它。