これが本からの直接の引用です(K&R、第2版、35ページ):
「少なくとも内部名の最初の31文字は重要です。関数名と外部変数の場合、言語が制御できないアセンブラーとローダーによって外部名が使用される可能性があるため、数は31未満になる可能性があります。外部名の場合、標準では、6文字と1つのケースのみが保証されています。」
また、C99では、内部名に長さの制限はありませんが、最初の63のみが重要であることが保証されています(§5.2.4.1変換制限)。
私の質問は、なぜこれらの制限が具体的に31または63なのかということです。なぜこの数なのか?なぜ19、24または他の数ではないのですか?実装の問題である場合、31または63にすることによるメリットはありますか?