¿Por qué no puedo especificar la clase de almacenamiento para parámetros formales de una función?
Cuando hago lo siguiente, el código funciona bien:
#include <stdio.h>
void test( int a)
{
printf("a=%d\n",a);
}
int main()
{
test(10);
return 1;
}
Pero cuando lo hago
#include <stdio.h>
void test( auto int a) // Or static int a Or extern int a
{
printf("a=%d\n",a);
}
int main()
{
test(10);
return 1;
}
Genera un error,
error: clase de almacenamiento especificada para el parámetro 'a'
¿Por qué es ese error? ¿Qué sucede internamente (gestión de memoria)?
Pero funciona bien sin ningún error cuando lo hago:
void test( register int a)
{
printf("a=%d\n",a);
}
¿Porqué es eso?