繁体   English   中英

C中标识符长度的限制

[英]limit on the length of an identifier in C

据说两个不同的标识符的前31个字符必须不同,无论它们的总长度如何。为什么C中的标识符(31个字符)的长度有限制?

此限制是为了简化内部簿记,以便编译器可以安全地为变量名分配不超过32个字符(31 +空终止符)(例如,不同纸张形式的姓氏长度有限制)。 确切的限制是任意的,对于内存来说足够小而对程序员来说足够大。

同样,由于在某些系统上,链接是与C编译器系统分开的步骤,因此可以链接非C语言编写的目标文件。 这些可能会限制标识符的长度。

更新:事情可能是使一个程序由用不同语言编写的几个部分组成(例如,一个功能可能已经用Fortran编写并已从主C代码调用)。 其他语言可能会对可变长度施加不同的限制(一个人工示例:如果在Fortran代码中认为标识abcdefabcdef1引用了同一函数,则在C代码中应该如此)。 以姓氏为例的说明:地方当局可以处理长度较大的名称或使用当地语言的名称,但联邦当局的要求可能更为严格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM