Maison >développement back-end >C++ >Quel impact a l'ordre de déclaration et de définition des fonctions C++ ?

Quel impact a l'ordre de déclaration et de définition des fonctions C++ ?

WBOY
WBOYoriginal
2024-04-19 13:42:021203parcourir

En C++, l'ordre de déclaration et de définition des fonctions affecte le processus de compilation et de liaison. La plus courante est la déclaration en premier et la définition après ; vous pouvez également utiliser la « déclaration avant » pour placer la définition avant la déclaration ; si les deux existent en même temps, le compilateur ignorera la déclaration et n'utilisera que la définition ;

C++ 函数的声明和定义的顺序有什么影响?

L'impact de l'ordre de déclaration et de définition des fonctions en C++

En C++, la déclaration et la définition des fonctions doivent apparaître dans le programme, et l'ordre entre elles affectera le processus de compilation et de liaison de le code.

Déclaration

La déclaration de fonction indique au compilateur l'existence de la fonction, y compris le nom de la fonction, le type de paramètre et le type de valeur de retour. Sa syntaxe est la suivante :

returnType functionName(parameterTypes);

Par exemple :

int add(int, int);

Définition

Une définition de fonction fournit l'implémentation de la fonction, y compris le corps du code. Sa syntaxe est la suivante :

returnType functionName(parameterTypes) {
  // 函数体
}

L'ordre affecte

  • Déclaration en premier, définition en dernier : C'est l'ordre le plus courant. Le compilateur voit la déclaration de fonction au moment de la compilation et la fait correspondre à la définition de la fonction au moment de la liaison.
  • Définition d'abord, déclaration en dernier : Cet ordre est appelé « déclaration anticipée ». Le compilateur trouve les définitions de fonctions via les déclarations de fonctions au moment de la liaison. Cet ordre est généralement utilisé lors du placement des définitions de fonctions dans des fichiers séparés ou lors de la résolution de dépendances circulaires.
  • Les deux en même temps : Si la déclaration et la définition d'une fonction apparaissent au même endroit, le compilateur ignore la déclaration et traite la définition comme la seule définition de la fonction.

Cas pratique

Le code suivant montre l'ordre de déclaration de fonction en premier et de définition en dernier :

// main.cpp
// 函数声明在前

int add(int, int); // 声明函数

int main() {
  int result = add(10, 20); // 调用函数
  return 0;
}

// other_file.cpp
// 函数定义在后

int add(int a, int b) { // 定义函数
  return a + b;
}

Dans cet ordre, le compilateur verra la déclaration de fonction dans main.cpp et la liera à other_file pendant la phase de liaison Les définitions de fonctions dans .cpp correspondent.

Conclusion

Comprendre l'ordre des déclarations et des définitions de fonctions en C++ est crucial car il affecte le processus de compilation et de liaison. Il est possible d'utiliser différentes séquences pour structurer le code selon les besoins.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn