如何在同一行内打印和返回?

Voj*_*jin 3 c++ syntax

我知道这样的事情是可能的,我只是忘记了如何正确地做到这一点。

if (true)
    printf("something"), return;
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 8

return 不是表达式,因此它不能是逗号运算符的操作数。

这是一个有效的(简单的)单行版本:

if (true) { printf("something"); return; }
Run Code Online (Sandbox Code Playgroud)

(注意:单行性被高估了。写作是为了可读性,而不是简洁,如果它们一致,那就是双赢。当然,我自己应该更经常地遵循我的建议......)

编辑:您可能正在考虑

if (true) return (void) printf("something"); // for void functions
if (true) return printf("something"), 0;     // for an e.g. int function
Run Code Online (Sandbox Code Playgroud)

这有效,但丑陋且笨拙,因为它掩盖了返回的内容。我不赞成使用它们。