Un largo, en arquitecturas de 32 bits, se representa con dos palabras . Ahora, imagine lo que podría suceder si debido a una sincronización insuficiente, la ejecución de la instrucción switch observa un largo con sus 32 bits altos de una escritura y los 32 bajos de otra. Podría intentar ir a ... ¡quién sabe dónde! Básicamente en algún lugar al azar. Incluso si ambas escrituras representaran casos válidos para la declaración de cambio, su combinación divertida probablemente no conduciría ni a la primera ni a la segunda, o, lo que es peor, ¡podría conducir a otro caso válido, pero no relacionado!
Al menos con un int (o tipos menores), no importa lo mal que lo estropees, la instrucción switch leerá al menos un valor que alguien realmente escribió , en lugar de un valor "de la nada".
Por supuesto, no sé la razón real (¡han pasado más de 15 años, no he estado prestando atención tanto tiempo!), Pero si se da cuenta de lo inseguro e impredecible que podría ser tal construcción, estará de acuerdo en que esta es una duda muy buena razón para no siempre tienen un interruptor en posiciones largas (y siempre -pun intended- habrá 32 bits máquinas, eso seguirá siendo válida).