首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

函数返回值的有关问题求解

2012-09-14 
函数返回值的问题求解if (ioctl(fd, VIDIOC_QBUF, &photoBuffers-buf) -1)if (-1ioctl(fd,VIDIOC_QB

函数返回值的问题求解
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) 这只是一种风格,并不是每个人都要遵循。

热点排行