据说两个不同的标识符在前31个字符中必须不同,不论其总长度如何。为什么C中标识符的长度(31个字符)有限制?
答案 0 :(得分:0)
此限制是为了使内部簿记更简单,以便编译器可以安全地为变量名称分配不超过32个字符(31 +空终止符)(例如,不同纸张形式的姓氏长度有限制)。确切的限制是任意的,对于内存来说足够小,对于程序员来说足够大。
另外,因为在某些系统上,链接是与C编译器系统分开的步骤,并且可能链接不是用C编写的目标文件。这些可以限制标识符长度。
更新:事情是可以制作一个程序,该程序由用不同语言编写的几个部分组成(例如,一个函数可能已经用Fortran编写并从主C代码调用)。其他语言可能对变量长度施加不同的限制(一个人为的例子:如果标识abcdef
和abcdef1
被认为是指Fortran代码中的相同函数,那么在C代码中应该如此)。使用姓氏示例的说明:地方当局可能能够处理大字长或当地语言的姓名,但联邦当局的要求可能更严格。