Is returning void valid code?

后端 未结 4 1540
时光说笑
时光说笑 2020-12-01 13:29

I found out that the following code gets accepted by Visual C++ 2008 and GCC 4.3 compilers:

void foo()
{

}

void bar()
{
  return foo();
}

4条回答
  •  广开言路
    2020-12-01 13:57

    It's a language feature of C++

    C++ (ISO 14882:2003) 6.6.3/3

    A return statement with an expression of type “cv void” can be used only in functions with a return type of cv void; the expression is evaluated just before the function returns to its caller.

    C (ISO 9899:1999) 6.8.6.4/1

    A return statement with an expression shall not appear in a function whose return type is void.

提交回复
热议问题