¿No hay un tipo definido de un parámetro de función predeterminado en int? ¿Estoy loco

Por alguna extraña razón, estaba copiando un ejemplo en otro idioma que no usa tipos, y olvidé agregar uno a un parámetro de definición de función, y funcionó.

#include <stdio.h>

char toChar(n) {
  //sizeof n is 4 on my 32 bit system
  const char *alpha = "0123456789ABCDEF";
  return alpha[n];
}

int main() {
  putchar(toChar(15)); //i.e.
  return 0;
}

Estoy seguro de que la mayoría de los compiladores de algún estándar (por lo general solo devuelve) es el comportamiento predeterminado de int, ¿esto también es cierto para otras funciones o esta implementación está definida? Parece fuera de lo común, mi compilador es solo un puerto GCC (MinGW) ligeramente anticuado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta