セミコロンなしで「C」ステートメントを実行する例を投稿してください(;)
9 に答える
この行はステートメントです:
while (0) { }
if()
スカラー(整数、浮動小数点数、またはポインター)に評価される限り、式を指定できます。
if (expr, 0) {}
C文法によると、expr
は式です。if(expr){}
はselection_statement
、なので、これは請求書と一致します。
の本体は空,0
なので、必ずしも必要ではないことに注意してください。if()
したがってexpr
、スカラーを返す場合、これらは同等のステートメントになります。
if (expr) {}
while (expr, 0) {}
while (expr && 0) {}
while (expr || 0) {}
すべてが式を一度評価します。
間違った答え
...以下の新しい正解で。
int main(void)
{
}
の定義の中括弧のペアは、ステートメントの有効な形式の1つであるmain
複合ステートメントです。
編集:ステートメントは複合ステートメントである可能性があり、関数本体は複合ステートメントで構成されますが、複合ステートメントが関数本体である場合、それはステートメントではありません。
編集、編集:
ただし、このプログラムには、実行されるステートメントが含まれています。
int main(void)
{
if (1) {}
}
この関数を使用します:
__asm {
mov al, 2
mov dx, 0xD007
out dx, al
}
{ }
回答を投稿するには、少なくとも 15 文字が必要です...
if (i=2) {} // give `i` a value
int main()
{
// This executes a statement without a semicolon
if( int i = 10 )
{
// Call a function
if( Fibonacci(i) ) {}
}
// I have made my point
return 0;
}
int Fibonacci(int n)
{
return (n == 2) ? 1 : Fibonacci(n - 2) + Fibonacci(n - 1);
}
プログラム全体でさえ(返された結果コードが未定義であるにもかかわらず、私のGNU Cがそれを構築しました)。質問はなぜですか?
/* NEVER DO THIS!!! */
int main()
{
{}
}
また、C++ では、変数を使用したこの単純なスタック トリックによってリターン コードを安定させることもできます (はい、それは汚いです。理解していますが、ほとんどの場合に機能するはずです)。
/* NEVER RELY ON SUCH TRICKS */
int main()
{
if (int i=0) {}
}
#define _ ;
int main()
{
return 0 _
}