N
Nan Li
Hello, all,
Does C/C++ ever check the return statement for a non-void function?
Look at my simple code below
int foo()
{
}
int main()
{
foo();
}
[nan@athena test]$ g++ foo.cpp
[nan@athena test]$ g++ -Wall foo.cpp
foo.cpp: In function `int foo()':
foo.cpp:4: warning: control reaches end of non-void function
There is only a warning, not an error.
Howver, in the java land, it is checked.
public class Main
{
private static int foo() {
}
public static void main( String [] args ) {
foo();
}
}
[nan@athena test]$ javac Main.java
Main.java:4: missing return statement
}
^
1 error
Is there any particular reason why C/C++ doesn't check the return
statement?
Thanks,
Nan
Does C/C++ ever check the return statement for a non-void function?
Look at my simple code below
int foo()
{
}
int main()
{
foo();
}
[nan@athena test]$ g++ foo.cpp
[nan@athena test]$ g++ -Wall foo.cpp
foo.cpp: In function `int foo()':
foo.cpp:4: warning: control reaches end of non-void function
There is only a warning, not an error.
Howver, in the java land, it is checked.
public class Main
{
private static int foo() {
}
public static void main( String [] args ) {
foo();
}
}
[nan@athena test]$ javac Main.java
Main.java:4: missing return statement
}
^
1 error
Is there any particular reason why C/C++ doesn't check the return
statement?
Thanks,
Nan