Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226255
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 781
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-08 10:41
个人简介

爱莉清

文章分类

全部博文(80)

文章存档

2018年(1)

2017年(18)

2016年(49)

2015年(7)

2014年(5)

我的朋友

分类: 嵌入式

2016-09-21 20:15:44

unsigned char bw;


bw=bw+2;
bw=bw>>1;


上面两句在STVP+COSMIC 中编译都会出现”truncating assignment“ 警告
要怎样改才不会出现 ”truncating assignment“ 警告
也就是  使用这类语句都会   如  变量=变量+常数    变量=变量-常数   变量=变量*常数    变量=变量/常数 
都会出现 “truncating assignment”警告 


上面在使用8位变量操作前,都应该强制声明变量为8 位才不会出现警告,看了些资料得知是因STVD编译器默认是16位变量。或许这是C语言的标准

上面改为下面后语句编译全通过。


点击(此处)折叠或打开

  1. unsigned char bw;

  2. bw=(unsigned char ) ( bw+2);
  3. bw=( unsigned char ) ( bw>>1 );




就连涵数参数是8位的变量,都应这样增加类型强制
write24c02 ( 0x00 ,  ( unsigned char  )  ( bw+1 )  );


格式为:( unsigned char )(表达式);如是16位的变量则不需要这样声明, 
阅读(2970) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~