函数返回值的问题求解
if (ioctl(fd, VIDIOC_QBUF, &photoBuffers->buf) == -1)
if (-1==ioctl(fd,VIDIOC_QBUF,&photoBuffers->buf))
请问这两者有区别吗???
[解决办法]
一般将数值放在前是不错的编程风格,可以减小不必要的错误,比如:
if(a==-1)
if(-1==a)
如果将==不小心写出=号
则第一个会执行(赋值语句的值为语句左值)
而第二个会报错
这里这个函数不会出问题,这个函数返回的是个常数(具体是否定义返回值为常数可以看汇编)于是无论哪种情况都会报错。
[解决办法]
1)在判断语句把值或表达式放左边是为了不会产生:
把if (a == 值)误写成if (a = 值)这样编译器检测部了的错误。
2) 这只是一种风格,并不是每个人都要遵循。