Que fait extern inline ?
Contrairement à inline et static inline, extern inline est utilisé dans un contexte spécifique :
Dans les compilateurs antérieurs à C99, en particulier GCC, inline n'avait pas de sémantique définie. Cependant, GCC a implémenté la fonction en ligne pour indiquer au compilateur d'intégrer la fonction si possible. Malgré cette suggestion, une version hors ligne de la fonction était toujours émise et restait visible de l'extérieur.
Pour remédier à cette limitation, GCC a introduit extern inline et static inline.
GNU89 :
-
inline : Peut être en ligne, mais un la version hors ligne est toujours émise et visible de l'extérieur.
-
extern inline : Ne génère pas de version hors ligne, mais peut en appeler une depuis une autre unité de compilation.
-
static inline : Ne génère pas de version hors ligne visible de l'extérieur, mais peut générer un fichier statique un.
C99 (ou GNU99) :
-
inline :Semblable à GNU89 externe en ligne, aucune fonction visible de l'extérieur est émis.
-
extern inline :Semblable à GNU89 en ligne, un code visible de l'extérieur est émis, permettant à une seule unité de traduction de l'utiliser.
-
statique en ligne : Semblable à GNU89 statique en ligne, aucun symbole externe ni appel à un n'est émis.
C :
- Les fonctions en ligne doivent être définies de manière identique dans toutes les unités de compilation.
- Il n'existe pas de définition standard pour extern inline ou static inline, mais certains compilateurs fournissent ces constructions basées sur le modèle GNU89.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!