我的问题是为什么这些限制是特别的31 or 63?为什么要特别指定这个数字呢?为什么不19, 24或任何其他数字?如果这是一个实施问题,那么实施它有什么好处吗?31 or 63?
The compiler/linker writers associated with a language design committee usually impose some limits so that they can make assumptions in the implementation of the toolchain or in the accompanying binary file formats (e.g., ELF http://en.wikipedia.org/wiki/Executable_and_Linkable_Format, COFF http://en.wikipedia.org/wiki/COFF, etc). The numbers 31 and 63 were probably chosen simply because they are 2n-1 and programmers like 2n for some silly reason. The -1 is usually to account for either a leading _ or a trailing NUL character in the name.