c - C 中标识符长度的限制

标签 c uniqueidentifier identifier

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

最佳答案

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

还因为在某些系统上,链接是与 C 编译器系统分开的步骤,并且可以链接不是用 C 编写的目标文件。这些可能对标识符长度有限制。

更新:问题是可以使一个程序由用不同语言编写的多个部分组成(例如,一个函数可能已经用 Fortran 编写并从主 C 代码调用)。其他语言可能对变量长度施加不同的限制(一个人为的例子:如果在 Fortran 代码中标识 abcdefabcdef1 被认为引用相同的函数,那么在 C 中也应该如此代码)。以姓氏为例说明:地方当局可能能够处理较长的姓名或使用本地语言的姓名,但联邦当局的要求可能更严格。

关于c - C 中标识符长度的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934682/

相关文章:

ios - ios7 中 IdentifierForVendor 的替代方案

git - Git 存储库中文件的唯一标识符

javascript - 如何获取 iOS 的设备型号(例如 "iPhone3,1")?

IOS 跨设备唯一用户标识符

c - C中的Vigenere密码

windows - 生成唯一的机器 ID

guid - 不带连字符的 GUID 安全吗?

c - C 结构中奇怪的 const char 指针成员初始化

c - 从C中的字符串中过滤出一个字符

c - 声明的含义