The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Définition de la fonction
Maintenant que nous avons parcouru quelques exemples, regardons la forme générale d'une définition de fonction :
void function-name() { Déclarations de variables, etc. Expressions... //aucun retour explicite n'est nécessaire. }
Une fonction ne renvoie aucune valeur spéciale, ni aucun paramètre entrant.
void nom de fonction (variable de type de données) { Déclarations de variables, etc. Expressions... //aucun retour explicite n'est nécessaire. } Si vous voulez plusieurs variables, utilisez simplement "," comme délimiteur :
Une fonction ne renvoie aucune valeur spéciale, mais avec un seul paramètre.
void nom de fonction (variable de type de données, variable de type de données, etc.) { Déclarations de variables, etc. Expressions... //aucun retour explicite n'est nécessaire. }
Une fonction ne renvoie aucune valeur spéciale, mais avec plus d'un paramètre.
void nom de fonction (variable de type de données, variable de type de données, etc.) { Déclarations de variables, etc. Expressions... retourner la valeur de retour }
Une fonction renvoie une valeur d'un type de données spécifique et avec plus d'un paramètre d'entrée.
Le type de retourd'une fonction doit être le même que le type de données de la valeur de retour renvoyée par la fonction. La valeur de retourpeut être une valeur constante ou une variable. Il doit être précédé du mot-clé «return »."
Les règles suivantes régissent le type de retour :
- Il n'y a presque aucune restriction sur le type de retour, à l'exception du tableau. (Array est un autre sujet plus avancé concernant la façon de créer vos données. Cela sort du cadre de cet article et ne sera pas abordé ici.
- Spécifier que le type de retour « void » signifie qu’aucune valeur de retour n’est nécessaire. La clause « retour » est implicite. Cela signifie que vous devez indiquer explicitement « return » à la fin d'une fonction « void ».
Créer une fonction avant le main() ou après ?
Le compilateur lit votre fichier de haut en bas. Ainsi, l’ordre compte.
Prenons comme exemple la simple fonction du plus grand dénominateur commun (GCD). Vous obtiendrez une erreur :utilisation de l'identifiant non déclaré 'getGCD'
En fait, cela est vrai, qu'il s'agisse du bloc fonction main() ou d'un autre bloc fonction appelant, c'est-à-dire que le « bloc fonction appelé » doit précéder le « bloc fonction appelant ».
Deux solutions possibles :
int getGCD(int a, int b) { int reste = 1; while (reste > 0) { reste = a % b; une = b; = reste ; } renvoie un ; } int main() { Brain.Screen.printAt(5,60, « GCD ( %d, %d ) = %d», getGCD(60, 100) ); }
Déplacez la « fonction appelée » au-dessus du « bloc fonction appelant », dans l'exemple « main() ».
int getGCD(int, int); int main() { Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) ); } int getGCD(int a, int b) { int reste = 1; while (reste > 0) { reste = a % b; une = b; b = reste ; } renvoie un ; }
Placez le prototype (également appelé signature) de la fonction avant le « bloc fonctionnel appelant ».
Et si vous souhaitez modulariser des fonctions dans différents fichiers ?
Étape 1 : Créez un fichier d'en-tête et placez le prototype de la fonction dans ce fichier.
par exemple, créez un fichier nommé « myFuncs.h »
Vous devez « ajouter » ce fichier d'en-tête dans votre projet avant de compiler votre code. Cela permet à l'IDE VEXcode Pro V5 « d'être au courant » de l'inclusion de ce nouveau fichier d'en-tête avant de commencer à construire votre projet.
Voici comment:
Dans ce fichier d'en-tête « common.h » (vous pouvez nommer ce que vous voulez, à condition qu'il soit alphanumérique sans espace.)
Étape 2 : Créez un fichier cpp distinct, par exemple appelé common.cpp
// ceci est le fichier common.cpp int getGCD(int a, int b) { int reste = 1; while (reste > 0) { reste = a % b; = b; b = reste ; } renvoie un ; }
Déplacez la fonction getGCD(...) dans ce fichier
#include "vex.h" #include "common.h" en utilisant l'espace de noms vex ; int main() { vexcodeInit(); Brain.Screen.printAt(5,60, "PGCD ( %d, %d ) = %d", getGCD(60, 100) ); }
Maintenant, tout ce que vous avez dans le fichier cpp principal sera composé des éléments suivants
Référence :https://api.vexcode.cloud/v5/html/namespacevex.html
Les sujets futurs seront abordés dans les sections plus avancées de la bibliothèque VEX à l'avenir :
- Passer par valeur ou passer par référence
- Passer dans un tableau
- Passer dans une structure