英文书名:The C Programming Language
对于内部名而言,至少前31个字符是有效的。函数名与外部变量名包含的字符数目可能小于31,这是因为汇编程序和加载程序可能会使用这些外部名,而语言本身是无法控制加载和汇编程序的。对于外部名,ANSI标准仅保证前6个字符的惟一性,并且不区分大小写。
反复检查,没有抄错。
希望能向我解释解释这段话,我的理解是这样(明显不对):
#include <stdio.h>
int abcdefgh; // 长度8
int abcdef; // 长度6
/*
* 正常编译...
*/
main()
{
abcdefgh = 1;
abcdef = 2;
}
应该是,标准只要求保证前6个字符唯一吧
很多编译器能做的比标准要求的更多
StackOverflow 这里有和你一样的问题,以及答案。英文的引文里没有提到「ANSI」。