int本来不就是16位么? 在很久很久以前,C语言才出现的时候,计算机的字宽是16位,int于是也就是16位. 后来出现了32位机的时候,int才有32位宽.不过在8位和16位的CPU上,int还是16位.这是编译器的问题,如果编译器将int认为16位,那么在这个编译环境中就是16位,如:Keil C和IAR中int都是16位,在IAR FOR STM8中用unsigned long int\unsigned int\unsigned long\long都不行,最多只能到16位了。此外IAR会把用完的局部变量优化掉。最好定义为全局变量然后观察,不然,有可能被优化掉了,什么也看不到;int型通常就是16位。 |