当前位置: 首页 > news >正文

做网站有未来吗中核工建设集团有限公司网站

做网站有未来吗,中核工建设集团有限公司网站,网络服务商在哪里找,网站建设宣传海报概念 在C语言中,整数类型按照其大小可以分为以下几类(从小到大): charshortintlonglong long 当在表达式中涉及这些类型的混合运算时,较小的类型会被提升为较大的类型。具体规则如下: ①char 和 short …

概念

在C语言中,整数类型按照其大小可以分为以下几类(从小到大):

  • char
  • short
  • int
  • long
  • long long

当在表达式中涉及这些类型的混合运算时,较小的类型会被提升为较大的类型。具体规则如下:

①char 和 short 在大多数情况下会被提升为 int

②如果 int 可以表示 char 或 short 的所有值,则 char 和 short 会被提升为 int

③如果 int 不能表示 char 或 short 的所有值(这种情况很少见,通常只在某些特殊硬件上发生),则 char 和 short 会被提升为 unsigned int

④int 和 unsigned int 在运算时不会被提升为更大的类型,除非与更大的类型(如 long)混合使用。

⑤long 和 unsigned long 在运算时通常不会被提升为 long long,除非与 long long 混合使用。

示例

 来看这样的一段代码来了解这个机制的具体作用:

#include <stdio.h>
#include <stdint.h>int main()
{int8_t arr[4];uint8_t arr1[4];arr[0] = 0x00;int8_t x=~arr[0];if(x==~arr[0]){printf("int8_t x=%d\n", x);}else{}arr1[0] = 0x00;uint8_t y = ~arr1[0];if (y==~arr1[0]){printf("Hello World\n");}else{}return 0;
}

编译运行的输出结果为:

仅仅输出了第一个if语句内的内容,原因是什么呢?可以试着把第二个if语句内要输出的内容改成“hello world”试试,结果依然是只输出了第一个,初步推测是第二个if语句内的条件不为真导致的。

调试

按下F10开始调试,点击调试->窗口->监视;

然后设置三个观察条件,分别是arr1[0]、y以及~arr1[0];

在最后一个空的else代码块打断点,并且运行到它的if语句那一行;

可以看到和Keil一样,有断点(程序暂停)和箭头的UI(程序当前运行停止的位置)。

从监视栏也可以看到~arr1[0]的类型从unsigned char类型被提升为了int型,并且此时y=255不等于~arr1[0]。

我们再直接输出结果看看:

可以看到如果强行及将~arr[0]作为unsigned char类型输出,结果是0xFFFFFFFF。

注意数据在一切计算机(单片机、Soc、PC等)中的存储形式都是补码,Visual Stdio中我们选择了32位的数据处理位宽那么此时~arr[0]的实际内容就是1111 11111 1111 1111 1111 1111 1111 1111。

更改一下占位符:

作为int类型输出,结果就是-1(-1的补码是32个1)。

注意

C语言的强弱类型之争到今天也没结束,类型提升导致的bug是可以通过良好的编码习惯避免的,我们在日常编程的过程中要尽量避免不同类型的数据之间进行数值比较。

http://www.yayakq.cn/news/235566/

相关文章:

  • 做企业网站有哪些好处建设网站怎么到工商备案
  • 网站怎样盗链图片缪斯装饰设计有限公司
  • 博物馆网站建设方案婚纱摄影的网站怎么做
  • 做货代在上面网站找客户比较多网站子域名怎么设置
  • 黄页推广软件网站wordpress外贸主题下载
  • 麦包包网站建设特点软件开发公司深圳
  • 网站制作报价单模板万网账户
  • 网站上线后苏州保洁公司收费价格表
  • 品牌网站设计提案免费手机app制作
  • 美食网站开发的特点与总结怎么上平台卖自己的产品
  • 快速达建网站vps服务器怎么创建多个网站
  • 深圳做微商网站设计免费软件看电视剧
  • wordpress网站设密码广东网站设计哪家好
  • 网站手机版方案主流网站风格
  • wordpress网站响应速度插件昆明市建设局官方网站
  • 网站怎么做留言板块建设部网站官网造价工程师孙思新
  • 法律网站的建设流程好看的静态网站
  • 天津网站排名wordpress主题Cosy
  • 网站建设与网页设计教程网摘网站推广法
  • 嘉兴网站建设企业网站制作建设集团网站的作用
  • 不懂的做网站专门做旅游的视频网站有哪些
  • wap医院网站建设wordpress 嵌入 php代码
  • 外贸建设网站制作深圳黄页企业名录
  • 宁波怎么建网站模板官网网站建设需求
  • 火车头 wordpress 4.9广州seo关键字推广
  • 影楼微网站建设方案建设网站建设公司
  • 怎样申请自己的网站做网站比较专业的有哪些公司
  • 杭州免费自助建站模板网站需要维护吗
  • 推客平台长沙正规关键词优化价格从优
  • 在线支付网站建设wordpress 第一张图片不显示