Quel est le mot-clé extern veux dire?
que signifie le mot-clé extern
? J'ai vu ça devant une déclaration de fonction comme
extern void DoFoo ...
3 réponses
extern
donne un nom lien externe . Cela signifie que l'objet ou la fonction est accessible par ce nom à partir d'autres unités de traduction dans le programme. Pour les fonctions, c'est le lien par défaut dans tous les cas donc son utilisation (dans ce contexte) est généralement redondante.
le mot clé externe déclare une variable ou une fonction et spécifie qu'elle a un lien externe (son nom est visible à partir de fichiers autres que celui dans lequel elle est définie). Lors de la modification d'une variable, extern spécifie que la variable a une durée statique (elle est affectée lorsque le programme commence et désallouée lorsque le programme se termine). La variable ou la fonction peut être définie dans un autre fichier source, ou plus tard dans le même fichier. Les déclarations des variables et des fonctions au champ d'application du fichier sont externe par défaut.
vous pouvez trouver un description plus complète ici .
Pour Débutants,
au départ, j'ai été confus d'apprendre que, " le mot-clé externe déclare une variable ou une fonction et spécifie qu'il a un lien externe " par @Romain Hippeau.
maintenant j'ai compris que, nous serons en mesure de partager nos variables avec d'autres classes par mot-clé externe.
Par Exemple: Notification.h
#import <Foundation/Foundation.h>
extern const NSString* notificationConstant;
Notification.m
#import "Notification.h"
const NSString* notificationConstant = @"NotificationConstant";
par notification d'importation.h dans l'une de mes autres classes, je peux lire la valeur de string NotificationConstant.
sans mot-clé externe pour la constante de Notification créera l'erreur suivante.