标题:有个整型变量的问题
只看楼主
skwolf
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2014-3-6
结帖率:0
已结贴  问题点数:20 回复次数:6 
有个整型变量的问题
我是在Ubunt64位环境下使用gcc编译如下代码的:

#include<stdio.h>
int main(void)
{
    int a;
    short b;
    long c;
    unsigned long s;
    a=3,b=4,c=5;
    s=a+b+c;
    printf("s=%d\n",s);
    return 0;
}

编译的时候提示:
2-6.c: In function ‘main’:
2-6.c:10:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
     printf("s=%d\n",s);
     ^
但是编译是成功的
请问具体的报错原因是什么,为什么明明报错了,结果却是对的。
搜索更多相关主题的帖子: function include warning return 
2014-03-06 17:32
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:20 
那不是错误 而是警告   而某些情况下  警告会致命的
warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int
如此明显的提示 还有啥可说的呢


DO IT YOURSELF !
2014-03-06 17:38
skwolf
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2014-3-6
得分:0 
谢谢,我是想知道原因,本人英语不太好,又是自学,所以有些看不太明白。
非常感谢你的回答
2014-03-06 17:43
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
int a;
    short b;
    long c;
    unsigned long s;
一个整型 你定义了4样  why?  
%d   只能和 int  匹配

其他3种  你需要百度一下

DO IT YOURSELF !
2014-03-06 17:45
skwolf
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2014-3-6
得分:0 
回复 4楼 wp231957
这个是在做书上的示例,是说明整型变量的定义和引用的。原文如下:

定义整型变量a、短整型变量b、长整型变量c和无符号长整型变量s。并通过给这4个变量赋值,同时相加求和,来说明整型变量的定义和引用。
2014-03-06 17:54
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
不超过最小值的范围 咋都好说  否则 就崩溃了

你可以这样来消除警告信息

   printf("s=%d\n",(int)s);

DO IT YOURSELF !
2014-03-06 18:07
skwolf
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2014-3-6
得分:0 
谢谢,我试试哦
2014-03-06 18:23



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




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

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