C中的本地和外部变量命名约定

时间:2015-02-07 21:24:03

标签: c naming-conventions

我通常是一个学习用C语言编程的Java程序员。现在在Kernighan和Ritchie的书的第2章中,这就是所写的。

  

至少内部名称的前31个字符是重要的。对于函数名和外部变量,该数字可能小于31,因为外部名称可能由语言无法控制的汇编程序和加载程序使用。对于外部名称,该标准保证唯一性仅限6个字符和单个案例。

然后他们写了

  

我们倾向于为本地变量使用名称,尤其是外部 <循环索引和更长名称变量

与它应该做的完全相反。虽然我知道我们不想要索引的长描述性变量名称,但上述两句话是否相互矛盾?

1 个答案:

答案 0 :(得分:1)

K&amp; R书籍从未更新到最近的标准,例如C99和当前的C11。外部标识符的限制最多提升到31个字符。如C11§5.2.4.1/ p1:

  

- 外部标识符中的31个重要的初始字符(每个   通用字符名称,指定短标识符0000FFFF或   less被认为是6个字符,每个通用字符名称   指定00010000或更高的短标识符被认为是10   字符和每个扩展源字符被认为是相同的   字符数作为相应的通用字符名称,如果   任何)19)

除此之外,即使C89标准建议尽可能摆脱任意限制。 5.2.4.1中的评论说:

  

实施应避免在任何时候强加固定的翻译限制   可能的。

虽然评论仅提供信息,但显然是实施者允许更长标识符的暗示。