Довгий, в 32-бітній архітектурі, представлений двома словами . А тепер уявіть, що може статися, якщо через недостатню синхронізацію виконання оператора перемикання спостерігає long з його високими 32 бітами від однієї записи, а 32 низькими - від іншої! Можна спробувати поїхати до .... хтозна куди! В основному десь навмання. Навіть якби обидва записи представляли дійсні випадки для оператора switch, їх смішна комбінація, мабуть, не призвела б ні до першого, ні до другого - або вкрай гірше, це могло б призвести до іншого дійсного, але не пов’язаного між собою випадку!
Принаймні з int (або меншими типами), незалежно від того, наскільки сильно ви зіпсуєте, оператор switch буде принаймні читати значення, яке хтось насправді написав , замість значення "з повітря".
Звичайно, я не знаю фактичної причини (минуло більше 15 років, я так довго не звертав уваги!), Але якщо ви зрозумієте, наскільки небезпечною та непередбачуваною може бути така конструкція, погодьтеся, що це, безумовно, дуже вагома причина, щоб ніколи не вмикати longs (і як передбачалося long -pun - буде 32-бітна машина, ця причина залишатиметься чинною).