标题:搞不清楚的警告--不知道原因--却知道怎么改
取消只看楼主
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
结帖率:75%
已结贴  问题点数:20 回复次数:5 
搞不清楚的警告--不知道原因--却知道怎么改
我在看C Primer Plus (5TH)

我运行了一个例题:

程序代码:
/*  toobig.c -- 超出你系统上的最大int值  */
#include <stdio.h>
int main( void )
{
    int i = 2147483647 ;
    unsigned int j = 4294967295 ;
    printf( "%d %d %d\n" , i, i+1, i+2 ) ;
    printf( "%u %u %u\n" , j, j+1, j+2 ) ;
    return 0 ;
}

然后出现了一个警告:



意思大概是:这个十进制常数是无符号类型只是在 ISO C90

但是还是不明白是啥子意思。。。郁闷。。。


后来我又自己加了段代码来理解例题:




结果出现2个一样的警告··而且奇怪的是

为什么同是一个i··但是第一个没有警告而第二个有呢。。。

我的确很不明白··而且又是菜鸟····发了很久的呆后·突然有种感觉··

应该这样改:


结果OK了··

但是我还是不明白为什么要这样改··

3次程序运行结果和书上以及我想的(我自己加的代码)是一样的

但是就是不明白这个警告到底要我做些什么··

谁告诉下我啊··谢谢了··



[ 本帖最后由 日的起烟烟 于 2010-2-27 20:51 编辑 ]
搜索更多相关主题的帖子: 警告 
2010-02-27 20:36
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
得分:0 
我系统是32位的··int和long都是32位的

所以不超出···赋的值都上极限值


2010-02-27 22:41
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
得分:0 
貌似有点感觉了··但是抓不住··
2010-02-27 22:46
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
得分:0 
总之赋的值··是极限值··没有噢溢出

程序的结果:

2010-02-27 22:51
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
得分:0 
你们在你们电脑上试试有没有警告
2010-02-27 22:56
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
得分:0 
大概理解了

我现在   这样理解下           在C90里 大于2147483647的数都属于无符号类型,因为int最大也就是2147483647
                              //  所以第一个i那里没有出警告。
                              
                              在我的程序里数的写法是有符号的写法(c99),如果程序移植到C90的编译器里,这些超
                              过int最大值的数会被做为无符号数看待,所以警告告诉我:这里的数如果跑到C90里面
                              会被当作是无符号看待(那就是说在C90里是不会出现警告的)。

                              所以编译器认为我现在用的是有符号数,但是担心移植到C90被当作无符号数用,所以第一个
                              警告出现了。但是我要用的就是无符号数啊,为了不让编译器担心,我就的自己说明我现在
                              用的就是无符号数,所以加个u说明符就OK了,因为编译器现在知道我用的是无符号数了,
                              跑到C90里就更合我意了。
 
 
所以2次的警告··是在纠正我对数的写法··
2010-02-27 23:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-298210-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.423691 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved