A tutoriel dit
Vous ne pouvez pas déclarer les fonctions d'un bloc comme étant statiques.
Quelle en est la raison ? Comment cela affecte-t-il la fonction ?
A tutoriel dit
Vous ne pouvez pas déclarer les fonctions d'un bloc comme étant statiques.
Quelle en est la raison ? Comment cela affecte-t-il la fonction ?
static
lorsqu'il est appliqué à des fonctions, signifie que la fonction a lien interne . c'est-à-dire qu'il n'est accessible qu'à l'intérieur de ce fichier. En d'autres termes, il a champ d'application du fichier . Ce lien s'applique indépendamment du fait que vous déclariez une fonction à l'intérieur d'une autre fonction ou à l'extérieur de toutes ces fonctions.
Maintenant, si vous appliquez le static
à une fonction déclaration à l'intérieur d'un autre bloc/fonction, d'un point de vue sémantique vous essayez de restreindre la portée de la fonction à ce bloc/fonction particulier, ce qui va à l'encontre des règles de la langue qui stipulent que static
indépendamment de leur lieu de déclaration, ont la portée d'un fichier.
Et donc, la norme pourrait ne soit pas en mesure d'interdire une telle déclaration.
PS : Note de bas de page 30
en 6.2.3
Dans la dernière norme C11, on peut lire
Une déclaration de fonction peut contenir le spécificateur de classe de stockage statique uniquement s'il se trouve dans un fichier ;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.