我最近(实际上仅在 SO 上)遇到了 C/C++ 逗号运算符的使用。据我所知,它在左侧和右侧运算符之间的线上创建了一个序列点,以便您拥有可预测的(定义的)评估顺序。
我对为什么要在语言中提供这一点感到有点困惑,因为它似乎是一个可以应用于本来不应该工作的代码的补丁。我发现很难想象一个不太复杂(并且需要重构)的地方可以使用它。
有人可以解释这种语言功能的目的以及它可以在实际代码中使用的地方(在合理范围内)(如果有的话)吗?
它可以在以下情况下有用:while()
loops:
while (update_thing(&foo), foo != 0) {
/* ... */
}
这避免了必须重复update_thing()
线,同时仍保持退出条件while()
控制表达,在您期望找到它的地方。它也能很好地配合continue;
.
它对于编写计算结果的复杂宏也很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)