首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >常量以'k‘开头的意义是什么?

常量以'k‘开头的意义是什么?
EN

Stack Overflow用户
提问于 2009-02-01 02:12:18
回答 4查看 6.8K关注 0票数 22

我正在自学Objective-C,我在很多书和例子中注意到了在常量定义中'k‘和驼峰大小写的用法。

代码语言:javascript
运行
复制
#define kMyConstant 0

“k”的意义是什么?这是Objective-C风格所特有的,还是一般C语言所共有的?为什么会偏离(我一直认为是最佳实践)的K_MY_CONSTANT风格?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-01 02:21:52

它之前在SO问题中提到过一次,Lower case "k" in Cocoa

它是一个通用的编程符号,不特定于Objective-C (即匈牙利符号),"k“代表”常量“。

如果你看看谷歌的Objective-C指南的Google cache,你会发现他们曾经在他们的风格指南中包含了它:

常量名称(#定义、枚举、常量局部变量等)应该以小写的k开头,然后使用大小写混合的方式来分隔单词,例如kInvalidHandle、kWritePerm。

尽管编写起来很痛苦,但它们对于保持代码的可读性绝对是至关重要的。以下规则描述了您应该注释的内容和位置。但请记住:虽然注释非常重要,但最好的代码是自文档化。为类型和变量提供合理的名称要比使用晦涩的名称,然后试图通过注释来解释它们要好得多。

但后来它在文档的live version中被删除了。应该指出的是,它与苹果的Official Coding Guidlines for Cocoa背道而驰。

票数 28
EN

Stack Overflow用户

发布于 2009-02-01 02:18:20

所有大写字母(如在K_MY_CONSTANT中)通常表示宏-不一定是常量。宏脱颖而出通常是很重要的,因为它们破坏了所有的名称空间。

在C/C++和其他语言中,'k‘约定用于(但不是通用的)非宏常量。我怀疑使用'k‘是因为'c’已经经常使用了--要么表示类名(如CString),要么表示变量是计数器。

票数 3
EN

Stack Overflow用户

发布于 2009-02-01 02:35:18

kMyConstant的事情可以追溯到非常古老的Mac编程时代(80/90年代是“非常古老的”)。这是Apple使用的标准,也是许多Mac程序员使用的标准;它取代了MY_CONSTANT-type定义。

我想您正在阅读的作者是Mac Pascal/C程序员,在成为NeXT/Cocoa程序员之前是旧的Mac Toolbox的程序员。Mac库过去被称为“工具箱”--这是一组API和库,随着时间的推移,这些API和库变成了碳。

我有时仍然在使用kMyConstant,这让我以前的Unix程序员同事发疯了。:-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/500030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档