¿Por qué una función no puede tener un parámetro estático?

El siguiente es el código en c.

fact(2); void fact(static int i) {..} 

Salida: El error no puede tener argumentos estáticos
Entonces, ¿por qué no podemos tener argumentos estáticos en una función?

La palabra clave estática significa que una variable puede tener solo y exactamente una instancia en su scope, y esa instancia es invisible fuera de su scope. Ninguno de estos requisitos tiene sentido para un argumento de función: puede llamarse varias veces, en una dirección de memoria diferente, y como está destinado a la comunicación, tiene que ser visible para el mundo exterior.

Tratar de aplicar static a un argumento no tiene mucho sentido, por lo que el estándar no lo permite (§6.7.5.3 / 2: “El único especificador de clase de almacenamiento que se producirá en una statement de parámetro es el register “.)