黑马程序员技术交流社区

标题: c语言有个警告挺烦人的 [打印本页]

作者: wanghui001001    时间: 2015-8-12 19:06
标题: c语言有个警告挺烦人的
比如逗号运算符
#include <stdio.h>

int main(int argc, const char * argv[]) {

    int a = 1,b = 2,end = 0;
    end = (a++,a + b,b+=);
    printf("end = %d",end);

    return 0;
}

其中end那行肯定会出警告,就是因为a + b没有赋值给一个变量是不是?求解



作者: 新生heima    时间: 2015-8-12 19:24
对end赋值那个一行,逗号操作符连接的最后一个表达式缺少一个操作数,b+=a?
作者: ylxkab    时间: 2015-8-12 19:48
b+=   后少了东西
作者: wanghui001001    时间: 2015-8-12 20:18
这是我打错了,我随手打的,我代码上打得时b++,应该还是因为a + b吧?
作者: wanghui001001    时间: 2015-8-12 20:19
新生heima 发表于 2015-8-12 19:24
对end赋值那个一行,逗号操作符连接的最后一个表达式缺少一个操作数,b+=a? ...

这是我打错了,我随手打的,我代码上打得时b++,应该还是因为a + b吧?
作者: wanghui001001    时间: 2015-8-12 20:21
ylxkab 发表于 2015-8-12 19:48
b+=   后少了东西

嗯,这个是我随手打得,如果这个少东西的话就应该是bug了,不是警告了,我代码上打得时b++
作者: 飓风少年    时间: 2015-8-12 22:21
这个又错误吗》》!|
作者: 新生heima    时间: 2015-8-12 22:49
wanghui001001 发表于 2015-8-12 20:18
这是我打错了,我随手打的,我代码上打得时b++,应该还是因为a + b吧?

我感觉应该是,你可以把a+b去掉,反正不影响,最终结果,看看会不会还有警告?
作者: wanghui001001    时间: 2015-8-13 00:06
飓风少年 发表于 2015-8-12 22:21
这个又错误吗》》!|

看评论我有个地方写错了,如果那是对的,有警告但不是bug
作者: wanghui001001    时间: 2015-8-13 00:07
新生heima 发表于 2015-8-12 22:49
我感觉应该是,你可以把a+b去掉,反正不影响,最终结果,看看会不会还有警告? ...

不去掉也行,在定义一个变量,把a + b的值赋给它就行了
作者: 新生heima    时间: 2015-8-13 10:54
wanghui001001 发表于 2015-8-13 00:07
不去掉也行,在定义一个变量,把a + b的值赋给它就行了

这确实!
作者: wowthe1st    时间: 2015-8-13 11:07
有些编译器会出错吧,我win上运行完全没问题,而且也看不出你这代码有什么问题(当然我指b+=改成b++后)
作者: Eil.tea    时间: 2015-8-13 11:33
无效的代码都会有警告~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2