从字面上看,它是有道理的,但它究竟是什么意思成为变量名称的重要字符?
我是使用K&R开始学习C语言的人.这是本书的直接引用:
"至少内部名称的前31个字符是重要的.对于函数名称和外部变量,数字可能小于31,因为外部名称可能被汇编程序和加载程序使用,语言无法控制.对于外部名称,该标准仅保证6个字符和一个案例."
顺便说一句,"单一案例"是什么意思?
单个案例通常意味着"小写".除了某些操作系统,它意味着"大写".关键是混合的情况不能保证有效.
abcdef ABCDEF
不同之处仅在于案例.这不保证有效.
"重要性"问题是多少个字母可以相同的问题之一.
假设我们只有6个重要字符.
a_very_long_name a_very_long_name_thats_too_similar
看起来不一样,但前16个字符是相同的.由于只有6个是重要的,因此它们是相同的变量.
这意味着你担心它意味着什么.对于外部名称,K&R 2nd ed时的C标准.写的确实只给了六个不区分大小写的字符!所以你不能拥有afoobar
和aFooBaz
作为独立的实体.
这种荒谬的限制(适用于现在已久的传统连接器)不再适用于任何环境.C99标准为外部名称提供了31个区分大小写的字符,在内部提供了63个字符,实际使用的连接符支持更长的名称.