Comparación de los compiladores de microcontroladores C51 convencionales
El tamaño de int short varía de una máquina a otra (más exactamente, debería ser el compilador). Has dicho que la estipulación "mínimo" es de 16 bits, pero no significa que solo pueda ser de 16 bits, ni dice que los dos deban ser iguales (de hecho, está bien si short no excede a int) . Entonces, por supuesto, el tipo short puede tener media palabra de máquina y el tipo int puede tener una palabra de máquina.
“El estándar C especifica el espacio de almacenamiento mínimo para cada tipo aritmético, pero no sabe que el compilador utiliza un mayor espacio de almacenamiento”
En pocas palabras, está estipulado por C es un valor mínimo, pero el compilador que compila su código en código de máquina determina cuál es su valor de longitud. Porque C es un lenguaje, una especificación o simplemente una regla, y es el compilador el que compila el código que usted escribe de acuerdo con esta especificación en código que se puede ejecutar en la máquina. La estructura real de los programas que se ejecutan en diferentes máquinas es diferente. Por ejemplo, existe una gran diferencia entre un microcontrolador y una PC. Para ejecutar programas escritos según las mismas especificaciones en una variedad de máquinas, se necesita el compilador correspondiente. Por lo tanto, el tamaño real lo determina el compilador con el que compila su código.
PD: Por supuesto, int en las PC generales actualmente es de 32 bits y short es de 16 bits. Porque las máquinas de 32 bits son ahora la corriente principal. Si no escribe ningún programa de microcontrolador, no necesita preocuparse demasiado por este problema. Pero hay que tener cuidado al escribir un programa de microcontrolador, porque generalmente un compilador de microcontrolador puede compilar códigos para muchos tipos de chips, y estos modelos pueden oscilar entre 8 y 32 bits...