C++运行没问题,但有2个warning,弄好他
#include<stdio.h>intmain(){charx=0x90;printf("%d",x);return0;}TC.CPP(4):warningC4305:...
#include<stdio.h>
int main()
{
char x =0x90;
printf("%d",x);
return 0;
}
TC.CPP(4) : warning C4305: 'initializing' : truncation from 'const int'
TC.CPP(4) : warning C4309: 'initializing' : truncation of constant value
TC.OBJ - 0 error(s), 0 warning(s) 展开
int main()
{
char x =0x90;
printf("%d",x);
return 0;
}
TC.CPP(4) : warning C4305: 'initializing' : truncation from 'const int'
TC.CPP(4) : warning C4309: 'initializing' : truncation of constant value
TC.OBJ - 0 error(s), 0 warning(s) 展开
7个回答
展开全部
你定义的 x 为 char 类型,可是你输出的格式却用的是 %d 十进制输出的呀。类型不匹配。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个字节的char型转成int最大也只是255,而十六进制的0x90比255大多了,不是char能表示的范围。
不过你的源程序我运行只有一个警告,就是我上面说的那个,改了之后就没有警告了
不过你的源程序我运行只有一个警告,就是我上面说的那个,改了之后就没有警告了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*显式地强制转换....这样一来就不会有warming了.*/
#include<stdio.h>
int main()
{
char x =0x90;
printf("%d",(int)x);
return 0;
}
#include<stdio.h>
int main()
{
char x =0x90;
printf("%d",(int)x);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char x
换成 unsigned char试试
换成 unsigned char试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询