zoukankan      html  css  js  c++  java
  • 0x10000与int/short越界

    将0x10000赋给一个int变量,在不同编译器中的结果

    1、在VC6.0中:

     1 // 0x10000是否越界int.cpp :
     2 // 看看0x10000是否超了int,
     3 // 理论上1个char是8bit,就是0xFF;1个int是16bit,就是0xFFFF;所以0x10000应该是超的。
     4 
     5 //#include "stdafx.h"
     6 
     7 
     8 int main(int argc, char* argv[])
     9 {
    10     int i=0x10000;
    11     int ii=(int)0x10000;
    12     short s=0x10000;
    13     return 0;
    14 }

    通过调试发现,i与ii都是65536,s是0。

    对于32位系统下安装的VC6,int是32位,short是16位,s是获取了0x10000的后16bit,得到结果为0x0000,即为0.

    2、在IAR中,工程目标MCU为16位的MSP430F5418A:

    3、在CCS中,MCU仍为MSP430F5418A:

  • 相关阅读:
    美多商城项目(一)
    Linux安装Qt
    mysql之初体验
    Linux系统编程目录
    Linux 多线程
    进程间通信
    Linux进程
    Linux文件IO(简易)
    Linux常用基本操作
    重绘
  • 原文地址:https://www.cnblogs.com/wuqi1003/p/4419743.html
Copyright © 2011-2022 走看看