【发布时间】:2016-04-23 22:25:45
【问题描述】:
假设我有一个函数 MyFunction,它返回一个从 0 到 10 的值。0 表示成功,非零表示失败。如果我想仅在值为非零时显示带有该值的 MessageBox,我必须执行以下操作:
int e = MyFunction();
if (e != 0) { MessageBox(e); }
如果我想让变量 int e 成为本地变量而不导致重新定义(因为我不擅长命名或其他什么),我可以将整个内容括在花括号中并像这样隔离变量:
int e;
{ int e = MyFunction(); if (e != 0) { MessageBox(e); } }
是否可以将它压缩成一个 if 语句,而不是像这样:
if (int e = MyFunction() != 0) { MessageBox(e); } //obviously does not work as intended
我知道语句是否真的不能以这种方式工作,但是否有可能通过使用一些 c++ 魔法来做到这一点?这对你们来说可能听起来微不足道,但我真的很想这样做。我做了搜索,也问了,但没有骰子。谢谢!
【问题讨论】:
-
...c++ 魔法...问独角兽。
-
因为我不擅长命名什么的嗯... :)
-
如何使用异常进行错误管理?
-
你可以试试这个:
if (MyFunction()) { MessageBox(e); }。在 C++ 中,任何非零值始终为true。 -
@ĐăngKhoaHuỳnh 你注意到这里的
e:MessageBox(e);?
标签: c++