Es cuestion del standart...
se supone que solo basta con defirnir la funcion indicando el tipo de datos que se va a usar para que el compiladroreserve la memoria necesaria, sin embargo comliadores como el que menciones o como el visual studio.net, no lo permiten y hay que escribir el nombre de la variable..
la razon exacta la desconozco pero es probable que lo hagan porque esto es mucho mas informativo y permite mas claridad en el codigo.