Red de conocimientos sobre prescripción popular - Conocimiento de perdida de peso - En TC20, el resultado de salida de int i=65536; printf("%d\n",i);
En TC20, el resultado de salida de int i=65536; printf("%d\n",i);
lz quiere experimentar
short
i=65536;printf("%d\n,i); right
Sí Si es así, el resultado de salida es 0
Miré el resultado del desmontaje y puedo explicarte por qué es 0
65536 corresponde al número hexadecimal 10000h,
short
El resultado del ensamblaje de i=65536 es
mov
[i],10000h
i solo ocupa Los 16 bits corresponden a los 16 bits inferiores de 10000h. El bit 1 más alto se descarta automáticamente porque no se puede almacenar, por lo que el valor de i es 0. No sé si otros compiladores lo manejan así. De alguna manera, supongo que debería ser casi lo mismo.
Olvidé mencionar que mi IDE es vs2010
.