我在这里读了一篇文章,但我想它很混乱,而且写得不好。所以我会在这里试一试,因为我仍然想找出答案。希望我不会收到那么多反对票。
事情是这样的,有一个励志有趣的引语:
if (sad() == true) {
sad().stop;
beAwesome();
}
Run Code Online (Sandbox Code Playgroud)
就我而言,这是 C 或 C++。我猜这两种语言都可以。所以我的主要问题是:这可以在 C 中工作吗?当然,假设变量存在。如果是这样,这也可以写成下面的代码吗?
if sad() {
sad().stop;
beAwesome();
}
Run Code Online (Sandbox Code Playgroud)
编辑:我已经得到了两个反对票......因为我是新来的,有人可以帮我理解我的错误吗?
第一个变体不是有效的 C。原因是如果sad()返回可以与 比较的东西true,它不能是struct。它必须是一个结构体sad().stop才能有效。它是有效的 C++,因为您可以重载结构或类的比较运算符以允许它与true.
如果不使用宏来确保条件周围有括号,则第二部分在 C 或 C++ 中无效:
#define sad() (...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |