C89 规定,编译器至少应该能够处理 31 个字符(包括 31)以内的内部标识符(Internal Identifier);而对于外部标识符(External Identifier),编译器至少应该能够处理 6 个字符(包括 6)以内的外部标识符。所谓标识符,是指我们为变量(Variable)、宏(Macro),或者函数(Function)等等取的名字。例如 Int Num; 这个语句中的 Num 就是一个标识符。 最新的 C99 标准规定,编译器至少应该能够处理 63 个字符(包括 63)以内的内部标识符;编译器至少应该能够处理 31 个字符(包括 31)以内的外部标识符。 事实上,我们可以使用超出最大数目限制的字符来命名标识符,不过编译器会忽略超出的那部分字符。也就是说,如果我们用 35 个字符来命名变量,而那个编译器最多只能处理 31 个字符的变量名的话,那么多出的那 4 个字符就会被编译器忽略,只有前面的 31 个字符有效。有些古老的编译器只能处理 8 个字符以内的标识符,对于这样的编译器来说,标识符 Kamehameha 和 Kamehameko 是等价的,因为它们前面 8 个字符相等。 |