Dans le code C fourni, un modèle de fonction nommé cal_size est déclaré pour accepter un tableau comme argument. Le modèle de fonction déduit la taille du tableau à partir du type d'argument et l'imprime.
La question se pose : comment le paramètre du modèle N est-il automatiquement initialisé à la bonne taille du tableau sans le spécifier explicitement dans la fonction appeler ?
La clé pour comprendre ce comportement réside dans le processus de déduction d'argument de modèle. Lorsqu'une fonction modèle est appelée, le compilateur utilise le type réel de l'argument pour déduire les valeurs des paramètres du modèle.
Dans le cas de cal_size, le type d'argument est un tableau d'éléments de type T avec un taille spécifiée N. Le compilateur déduit T du type d'élément du tableau et N de la taille du tableau.
Lorsque l'argument a est passé à la fonction, le compilateur déduit T comme int et N comme 6. De même, lorsque b est passé, T est int et N est 1.
Sur la base des valeurs déduites de T et N, le compilateur génère versions distinctes et spécialisées du modèle de fonction. Pour chaque appel, une fonction spécialisée est créée avec les informations spécifiques de type et de taille du tableau d'arguments.
Dans ce cas particulier, deux fonctions spécialisées sont générées :
Le la fonction principale se traduit essentiellement par l'appel de ces fonctions spécialisées.
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!