Quiero tener una función estática que declaro en mi archivo .c antes de definirlo:¿La palabra clave estática en la declaración de la función puede faltar en la definición de la función?
//file a.c version 1
static int foo();
...
static int foo()
{
...
}
Sin embargo, parece que puedo dejar la palabra clave static
fuera de la definición de la función y me da ninguna advertencia del compilador ... p.ej
//file a.c version 2
static int foo();
...
int foo()
{
...
}
¿Estoy en lo correcto al asumir que estas dos formas son exactamente las mismas?
Si es así, ¿por qué se permite esta discrepancia y qué formulario debo usar?
Creo que él/ella está haciendo ejercicio, no escribir un programa real grande. Mi opinión, primera pregunta de tipo de google porque es muy trivial. –
@fatai: es bastante difícil google esta pregunta. Y los abogados de idiomas aquí le proporcionarán una cita del Estándar. –
¡Muchas gracias Erik y AProgrammer por responder la pregunta! ¿Por qué es deseable poder omitir la palabra clave estática en una futura declaración/definición? Me parece que esto sería confuso sin agregar ningún beneficio. – Arrakis