Declarar los parámetros de la función después del nombre de la función

int func(x)
int x;
{
    .............

¿Cómo se llama este tipo de declaración?

¿Cuándo es válido / no válido incluyendo C o C ++, ciertas revisiones estándar y compiladores?