搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 搞不清楚的警告--不知道原因--却知道怎么改
标题:
搞不清楚的警告--不知道原因--却知道怎么改
只看楼主
lijm1989
来 自:珠海
等 级:
贵宾
威 望:
12
帖 子:675
专家分:2844
注 册:2009-10-14
第
11
楼
得分:10
看来你没明白我说什么。。。
我说的溢出是相对int 来的,4294967295这个常数不是在赋给j的时候溢出了,j是unsigned int ,当然不会溢出,是你的编译器默认的问题,warning已经提醒你了。。。
2010-02-27 23:12
日的起烟烟
等 级:
论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
第
12
楼
得分:0
大概理解了
我现在 这样理解下 在C90里 大于2147483647的数都属于无符号类型,因为int最大也就是2147483647
// 所以第一个i那里没有出警告。
在我的程序里数的写法是有符号的写法(c99),如果程序移植到C90的编译器里,这些超
过int最大值的数会被做为无符号数看待,所以警告告诉我:这里的数如果跑到C90里面
会被当作是无符号看待(那就是说在C90里是不会出现警告的)。
所以编译器认为我现在用的是有符号数,但是担心移植到C90被当作无符号数用,所以第一个
警告出现了。但是我要用的就是无符号数啊,为了不让编译器担心,我就的自己说明我现在
用的就是无符号数,所以加个u说明符就OK了,因为编译器现在知道我用的是无符号数了,
跑到C90里就更合我意了。
所以2次的警告··是在纠正我对数的写法··
2010-02-27 23:48
12
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-298210-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.531275 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved