In C99 strict, we can not do this. In C89/C90 or gcc 4.8.4+, we need not need to pre-declare (or prototype) a function; it would be implicitly declared as function taking undefined list of arguments and having return type 'int'.
Although type conpflict 'warning' would occur.
Below the results using gcc 4.8.4
In of case c99 strict : compilation gives errors:
prog.c: In function 'main':
prog.c:3:10: error: implicit declaration of function 'm' [-Werror=implicit-function-declaration]
int k = m();
^
prog.c: At top level:
prog.c:6:6: error: conflicting types for 'm' [-Werror]
void m(){
^
prog.c:3:10: note: previous implicit declaration of 'm' was here
int k = m();
^
cc1: all warnings being treated as errors