Длинный в 32-битных архитектурах представлен двумя словами . А теперь представьте, что может произойти, если из-за недостаточной синхронизации выполнение оператора switch наблюдает long с его старшими 32 битами из одной записи и 32 младшими из другой! Он может попытаться пойти в .... кто знает где! В основном где-то наугад. Даже если обе записи представляют действительные случаи для оператора switch, их забавная комбинация, вероятно, не приведет ни к первому, ни ко второму - или, что еще хуже, может привести к другому действительному, но не связанному случаю!
По крайней мере, с int (или меньшими типами), независимо от того, как сильно вы запутались, оператор switch будет по крайней мере читать значение, которое кто-то на самом деле написал , вместо значения "из тонкого воздух».
Конечно, я не знаю действительной причины (прошло более 15 лет, я так долго не обращал внимания!), Но если вы поймете, насколько небезопасной и непредсказуемой может быть такая конструкция, вы ' Я согласен, что это определенно очень веская причина не когда-либо иметь переключатель на long (и, как предполагалось, long-pun - будут 32-битные машины, эта причина будет действительной) .