AFAIK, le mot-clé extern doit être utilisé pour la déclaration et aucune valeur ne peut être associée à la variable déclarée avec le mot-clé extern. Mais en supposant que j'écris une instruction commeDoute liée à l'utilisation des mots-clés externes
extern int i = 10;
Le compilateur doit-il signaler une erreur pour le même? J'ai vu des compilateurs être tolérant et ignorant cela? Pourquoi cela est-il ainsi? Que dit la norme 'C' à ce sujet?
EDIT: @All, Merci pour les réponses. J'ai encore un doute. Supposons que j'ai la définition de cette variable sans la liaison externe dans un autre fichier disons a.c et j'ajoute cette déclaration dans b.c. Est-il toujours correct pour le compilateur de ne pas signaler une erreur? Cela vient-il en redéfinition?
Non, car il s'agit en fait d'une définition et non d'une déclaration. – Clifford
LLVM lève un avertissement: "variable externe a un initialiseur" – Binarian