【发布时间】:2013-03-08 20:32:37
【问题描述】:
我正在学习 C,作为练习,我正在尝试编写一个没有任何分号的简单程序。我在替换 return 0 语句时遇到了一些麻烦,但我发现这是(唯一的?)在 C:if(exit(0),0){} 中执行此操作的方法。
这个语句究竟是如何工作的?
我知道 stdlib 中的 exit() 是一个 void 函数,但我不明白 if 中的 ,0 部分的作用(其余部分我很清楚)。
【问题讨论】:
-
在
main函数之外它们是不等价的。 -
@ouah 我相信在 main 之外也有
if(exit(0),0) == f(0)我错了。你的观点是什么? -
@GrijeshChauhan 我的观点是
return 0从函数返回,而exit(0)从程序退出:这不是同一个操作。 -
@ouah ahaa :) 愚蠢的问题。是的,真的,明白了..
-
return是一个语句,所以不能没有分号使用。函数是一个表达式,所以不需要。