Question

  

Possible en double:    Que signifie « statique » dans un programme C?

Que signifie le mot-clé static signifie en C?

J'utilise ANSI-C. Je l'ai vu dans plusieurs exemples de code, ils utilisent le mot-clé static devant des variables et devant des fonctions. Quel est le but en cas d'utilisation d'une variable? Et quel est le but en cas d'utilisation d'une fonction?

Était-ce utile?

La solution

Tout comme une brève réponse, il y a deux usages pour le mot-clé static lors de la définition des variables:

1- Les variables définies dans le champ de fichier avec mot-clé static, i.e.. définies en dehors des fonctions ne sera visible que dans ce fichier. Toute tentative d'y accéder à partir d'autres fichiers entraînera symbole non résolu à l'heure du lien.

2- Les variables définies comme static l'intérieur d'un bloc à l'intérieur d'une fonction persistera ou « survie » dans les différentes invocations du même bloc de code. Si elles sont définies initialisés, ils sont initialisés qu'une seule fois. variables static sont généralement garantis d'être initialisé à 0 par défaut.

Autres conseils

static dans le corps d'une fonction, à savoir utilisé comme un classificateur de stockage variable permet cette variable de conserver sa valeur entre les appels de fonction - on pourrait bien dire qu'une variable statique dans une fonction est variable globale visible uniquement à cette fonction. Cette utilisation de static fait toujours la fonction, il est utilisé dans le thread dangereux vous devriez éviter.

L'autre cas d'utilisation utilise static sur la portée globale, à savoir pour les variables et les fonctions globales: fonctions statiques et variables globales sont locaux à l'unité de compilation, à savoir qu'ils ne se présentent pas dans la table d'exportation de l'objet binaire compilé . Ils ne polluent pas ainsi l'espace de noms. Déclarant statique toutes les fonctions et variables globales ne pas être accessible depuis l'extérieur de l'unité de compilation (fichier C à savoir) en question est une bonne idée! Sachez simplement que les variables statiques ne doivent pas être placés dans des fichiers d'en-tête (à l'exception des cas particuliers i très rares).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top