zpyws 发表于 2010-6-27 13:32:28

integer conversion resulted in truncation 是什么意思

#define   BEEP   GPIO_PIN_7

int main(void)
{
..
..
GPIOPinWrite(GPIO_PORTA_BASE,BEEP,~BEEP);      //ln89
..
..
GPIOPinWrite(GPIO_PORTA_BASE,BEEP,~BEEP);      //ln97
}

编译后出现如下warning:
Messages            File               Line

Warning: integer conversion resulted in truncation   E:\开发板\LM3S8962开发\EasyArm8962(原厂光盘刻录)\DEMO\IAR实验例程\chapter4\4.2_SetPLL\SetPLL.c   89
Warning: integer conversion resulted in truncation   E:\开发板\LM3S8962开发\EasyArm8962(原厂光盘刻录)\DEMO\IAR实验例程\chapter4\4.2_SetPLL\SetPLL.c   97

个人判断:
“integer conversion resulted in truncation” 直译为“整数转换导致切断”,
   做如下任意修改就不再出现上述警告了,真是怪异   
      
1、将“~BEEP”改为“BEEP”后就没有上述警告了;

   
这个警告真的没道理呀

环境:keil rvmdk

EasyArm8962 开发板

gaohaosky 发表于 2011-11-17 18:51:20

回复【楼主位】zpyws 单片鸭
-----------------------------------------------------------------------

数据类型不匹配造成,(把大于255的数据传给unsigned char型数据就会出现这样的警告,这是我遇到的)

xiaoyedeng 发表于 2011-12-18 15:03:15

回复【1楼】gaohaosky
-----------------------------------------------------------------------

正解 ~~谢谢就是这个原因

firstzys 发表于 2013-4-22 15:05:37

我也遇到了,高手啊~

bajie_zhl19 发表于 2013-10-18 15:44:46

gaohaosky 发表于 2011-11-17 18:51 static/image/common/back.gif
回复【楼主位】zpyws 单片鸭
-----------------------------------------------------------------------



请问怎么解决这个问题啊~~un char不止255啊~~

SCREA 发表于 2014-7-11 09:36:49

举个例子:_delay_ms(u16 x)

x=0~65535对的
但是x>65535,比如_delay_ms(900000)就报那个错误:整数转换导致截断

bdzhaojing 发表于 2014-7-29 13:36:56

正解 ~~谢谢就是这个原因

腹黑男 发表于 2014-9-28 15:32:51

char还真是在0-255...
页: [1]
查看完整版本: integer conversion resulted in truncation 是什么意思