returnステートメントに関して、Microsoft Visual Studioのドキュメントには次のように書かれています
構文:
式を返します。
ここで、式はオプションとしてマークされています。続きます
式の値が存在する場合は、呼び出し元の関数に返されます。式を省略した場合、関数の戻り値は未定義です。
これは非常に明確ですが、一方で、空式の概念があります。これは私を混乱させます。空の式を何もないのではなく、空の式と考えると、関数があれば
void foo(void)
{
return;
}
式 foo() は、空の式が許可されている場所で使用できます。たとえば、コードの動作
unsigned int i=0;
for(foo();i<10;i++) printf("%u",i);
定義されます。これはおそらく実用的な関連性がほとんどないことを認識していますが、このコンテキストで空の式が式ではない理由を理解したいと思います。