If the prototype is omitted, the compiler will have no way of enforcing this and myfunction will end up operating on some other datum on the stack (possibly a return address or the value of a variable that is currently not in scope).
Если прототип пропущен, компилятор не может это обработать и «foo» завершит операцию на некоторых других данных стека (вероятно, это будет обратный адрес или значение переменной, не входящей в область допустимых значений).