我最近一直在阅读 C 和 C++ 并且不禁动摇 C/C++ 程序员使用缩写方式过度使用变量和函数名称的感觉。我看不出这是有益的原因,因为两者都是编译语言。实际上,我遇到的所有代码都比其他语言更多地使用缩写(当然是我的个人经验)。
那么问题就变成了这个;您是否有理由要在 C/C++ 中使用缩写?使用较长的变量名是否存在性能问题,还是只是一种约定?
编辑:看起来我在这里开了一罐蠕虫。我希望得到一个是/否的答案,而不是关于编码风格的讨论。
这主要是一个约定。
有一些历史需求,因为早期的 C 编译器不保证标识符在某些情况下对超过 8 个(甚至可能是 6 个)字符有意义(导致编译MyFantasticFoo
器MyFantasticBar
认为相等)。现代编译器没有如此严格的限制,有关详细信息,请参阅此答案。
今天,我认为这更像是一个约定/风格问题,C 代码通常很简洁。
这是编程早期的遗留物——在人们意识到编程的困难部分不是编写代码,而是阅读它之前。
首先,我认为这不是一般规则;正如 Steve Jessop 在评论中提醒我们的那样,其他语言,如 APL,传统上使用更短的名称,而 Fortran(至少在我使用它时)将最大名称长度限制为六个。
不仅仅是语言,我认为领域也很重要。例如,Unix 程序员倾向于使用比 Windows 程序员更短的名称,这无疑是因为系统 API 使用更短的名称(至少部分是因为 Unix 更老,而且早期的链接器不能处理超过 6 或 8 个符号——尽管这没有解释creat
而不是
create
)。数学也有缩短名称的传统:在处理数学表达式时使用类似index
, 而不是索引的名称会使代码变得不那么
清晰和难以解释,因为数学中第一个索引的传统符号是i
i
. 许多其他领域或多或少都有首字母缩略词或缩写:当我在电信工作时,规范文档(来自客户)谈到了 TP 和 CX,而不是终结点和交叉连接;在我目前的银行环境中,即使在程序之外,没有人会写“信用违约掉期”或“抵押债务义务”而不是简单的 CDS 或 CDO。因此,如果您在 C++ 中看到较短的名称,可能是因为您正在查看执行不同操作的代码,并且来自一个即使在编程环境之外也经常使用缩写的域。