Quel est le type par défaut pour C const?

J’écrivais du code C et j’ai remarqué ce que je pensais être une erreur, mais ce n’était pas le cas. J’ai eu la déclaration de déclaration de type suivante.

const fee; 

Cependant, il n’a pas été pris initialement parce que le compilateur et moi ne l’avons pas attrapé. J’étais donc curieux de savoir pourquoi C autorise ceci et quel est le type par défaut.

Seule la version d’origine de la norme de langage C (ANSI / ISO C89 / 90) le permet. Cette déclaration de variable utilise par défaut le type int conformément à la règle “implicit int “. Cette règle était présente dans C depuis le début des temps. C’est comme ça que le langage a été défini à l’origine.

Notez que la partie spécificateur de déclaration d’une déclaration ne peut pas être complètement omise, par exemple un simple

 fee; 

ne déclare pas une variable int . C’est illégal, même dans le C original. Mais une fois que vous ajoutez une sorte de spécificateur de déclaration ou de qualificateur, la déclaration devient légale et prend par défaut le type int , comme dans

 static fee; const fee; register fee; 

Cependant, tout cela est illégal en C99 et dans les versions ultérieures du langage, car ces versions de la spécification du langage interdisent “implicit int”.