Długi, w architekturze 32-bitowej, jest reprezentowany przez dwa słowa . Teraz wyobraź sobie, co mogłoby się stać, gdyby z powodu niewystarczającej synchronizacji wykonanie instrukcji switch obserwowało długi z jego wysokimi 32 bitami z jednego zapisu i 32 niskimi z innego! Mógłby spróbować ... kto wie gdzie! Zasadniczo gdzieś przypadkowo. Nawet gdyby oba zapisy reprezentowały ważne przypadki dla instrukcji przełącznika, ich zabawna kombinacja prawdopodobnie nie prowadziłaby ani do pierwszego, ani do drugiego - lub, co gorsza, mogłaby prowadzić do innego ważnego, ale niezwiązanego z nim przypadku!
Przynajmniej w przypadku typu int (lub mniejszych typów), bez względu na to, jak bardzo zepsujesz, instrukcja switch przynajmniej odczyta wartość, którą ktoś faktycznie napisał , zamiast wartości „z powietrza”.
Oczywiście nie znam faktycznego powodu (minęło ponad 15 lat, nie zwracałem na to uwagi tak długo!), Ale jeśli zdasz sobie sprawę, jak niebezpieczny i nieprzewidywalny może być taki konstrukt, zgodzisz się, że jest to zdecydowanie bardzo dobry powód, aby nigdy nie włączać długich pozycji (i tak długo, jak zamierzano - będą maszyny 32-bitowe, ten powód pozostanie ważny).