C++中逗号表达式的应用

Posted 松子茶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中逗号表达式的应用相关的知识,希望对你有一定的参考价值。

假设我们的程序需要调用三个函数f,g,h。其中f和h可能失败,可能成功,而g一定成功。f和h有返回值,g没有返回值。我们可能得写这样的代码:

if (f()!=SUCCESS) 
  //abort
 else 
  g();
  if (h()!=SUCCESS) 
  

由于g没有返回值,因此这么写似乎是天经地义的。能不能优雅点?借助于逗号表达式,我们可以这样:

if (f()!=SUCCESS)
 else if (g(),false)  //逗号表达式
  //we will never be here...
 else if (h()!=SUCCESS) 

形式上更加优美,但是和之前的写法相比可读性较差,并且使用了三次比较,之前只需要两次比较。

在C++中,逗号表达式有时候是一种很有用的工具:(A,B,C),则从左到右求值,最后C的(返回)值作为整个表达式的值。

关于程序设计基石与实践更多讨论与交流,敬请关注本博客和新浪微博songzi_tea

以上是关于C++中逗号表达式的应用的主要内容,如果未能解决你的问题,请参考以下文章

重载逗号表达式

JavaScript 表达式中的逗号有啥作用?

是否可以将“删除”放在逗号表达式中

正则表达式匹配两个或多个逗号分隔的整数

機器學習基石 机器学习基石 (Machine Learning Foundations) 作业二 Q19-20 C++实现

機器學習基石 机器学习基石 (Machine Learining Foundations) 作业2 Q16-18 C++实现