是否可以执行“C”?不带分号的语句
发布一个示例来执行不带分号的“C”语句(;)
Post an example to execute a "C" statement without semicolon( ; )
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布一个示例来执行不带分号的“C”语句(;)
Post an example to execute a "C" statement without semicolon( ; )
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
这一行是一个声明:
This line is a statement:
只要计算结果为标量(整数、浮点数或指针),您就可以在
if()
中使用表达式。根据C语法,
expr
是一个表达式。if(expr){}
是selection_statement
,因此这与帐单相符。请注意,
,0
并不总是必需的,因为if()
的主体是空的。因此,如果expr
返回一个标量,那么这些语句将是等效的:All 都会对表达式求值一次。
You can an expression in an
if()
as long as it evaluates to a scalar (integer, floating point number or pointer).According to the C grammar,
expr
is an expression.if(expr){}
is aselection_statement
, so this would match the bill.Note that the
,0
isn't always necessary since the body of theif()
is empty. So these would be equivalent statements, ifexpr
returns a scalar:All would evaluate the expression once.
错误答案
...下面有一个新的正确答案。
main
定义中的一对大括号是一个复合语句,它是语句的有效形式之一。编辑:虽然语句可以是复合语句,并且函数体由函数体组成>复合语句,当复合语句是函数体时,它不是语句。
编辑,编辑:
这个程序确实包含一个被执行的语句,但是:
Wrong answer
... with a new right answer below.
The pair of braces in the definition of
main
is a compound-statement which is one of the valid forms for a statement.Edit: although a statement can be a compound-statement, and a function-body consists of a compound-statement, when the compound-statement is a function-body, it's not a statement.
Edit, Edit:
This program does contain a statement which is executed, though:
使用这个函数:
Use this function:
{ }
发布答案至少需要 15 个字符...
{ }
At least 15 characters are required to post an answer...
甚至整个程序(我的 GNU C 构建了它,尽管返回的结果代码是未定义的)。
问题是为什么?
在 C++ 中,我们甚至可以通过这个带有变量的简单堆栈技巧来稳定返回代码
(是的,它很脏,我理解,但我认为它应该适用于大多数情况):
Even whole program (my GNU C built it despite result code returned is undefined).
The question is WHY?
And in C++ we even can stabilize return code by this simple stack trick with variable
(yes, it is dirty, I understand but I think it should work for most cases):