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.
Definizione della funzione
Ora che abbiamo esaminato alcuni esempi, diamo un'occhiata alla forma generale di una definizione di funzione:
void nome-funzione() {
Dichiarazioni di variabili, ecc.
Espressioni...
//non è necessaria alcuna restituzione esplicita.
}
Una funzione non restituisce alcun valore speciale, né alcun parametro in entrata.
void nome-funzione(variabile del tipo di dati) {
Dichiarazioni di variabili, ecc.
Espressioni...
//non è necessaria alcuna restituzione esplicita.
}
Se desideri più variabili, utilizza semplicemente "," come delimitatore:
Una funzione non restituisce alcun valore speciale, ma con un parametro.
void nome-funzione(variabile del tipo di dati, variabile del tipo di dati, ecc.) {
Dichiarazioni di variabili, ecc.
Espressioni...
//non è necessaria alcuna restituzione esplicita.
}
Una funzione non restituisce alcun valore speciale, ma con più di un parametro.
void nome-funzione(variabile del tipo di dati, variabile del tipo di dati, ecc.) {
Dichiarazioni di variabili, ecc.
Espressioni...
return valore-ritorno
}
Una funzione restituisce un valore di un tipo di dati specifico e con più di un parametro di input.
Il tiporeturndi una funzione deve essere uguale al tipo di dati del valore restituito dalla funzione. Il valore restituitopuò essere un valore costante o una variabile. Deve essere preceduto dalla parola chiave “return.”
Le seguenti regole regolano la tipologia di reso:
- Non ci sono quasi restrizioni sul tipo restituito, ad eccezione dell'array. (Array è un altro argomento più avanzato su come creare i tuoi dati. Non rientra nell'ambito di questo articolo e non verrà trattato qui.
- Specificare che il tipo restituito "void" significa che non è necessario alcun valore restituito. La clausola “ritorno” è implicita. Ciò significa che devi dichiarare esplicitamente "return" alla fine di una funzione "void".
Creare una funzione prima di main() o dopo?
Il compilatore legge il file dall'alto verso il basso. Pertanto, l’ordine ha importanza.
Prendiamo come esempio la semplice funzione del massimo comune denominatore (MCD). Riceverai un errore:utilizzo dell'identificatore non dichiarato 'getGCD'
In realtà questo è vero sia che provenga dal main() o da un altro blocco funzione chiamante, cioè il "blocco funzione chiamato" deve precedere il "blocco funzione chiamante".
Due possibili soluzioni:
int getGCD(int a, int b) {
int resto = 1;
while (resto > 0) {
resto = a % b;
= b;
b = resto;
}
restituisce a;
}
int main() {
Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
Spostare la "funzione chiamata" sopra il "blocco funzione chiamante", nell'esempio "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 resto = 1;
while (resto > 0) {
resto = a % b;
= b;
b = resto;
}
restituisce a;
}
Metti il prototipo (chiamato anche firma) della funzione prima del "blocco funzione chiamante".
Cosa succede se desideri modularizzare le funzioni in file diversi?
Passaggio 1: crea un file di intestazione e inserisci il prototipo della funzione in questo file.
ad esempio, crea un file chiamato "myFuncs.h"
Devi "aggiungere" questo file di intestazione al tuo progetto prima di compilare il codice. Ciò consente all'IDE VEXcode Pro V5 di "essere consapevole" dell'inclusione di questo nuovo file di intestazione prima di iniziare a creare il tuo progetto.
Ecco come:



In questo file di intestazione "common.h" (puoi nominare quello che vuoi, purché sia alfanumerico senza spazi.)
Passaggio 2: creare un file cpp separato, ad esempio chiamato common.cpp

//questo è il file common.cpp
int getGCD(int a, int b) {
int resto = 1;
while (resto > 0) {
resto = a % b;
= b;
b = resto;
}
restituisce a;
}
Sposta la funzione getGCD(...) in questo file
#include "vex.h"
#include "common.h"
utilizzando lo spazio dei nomi vex;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
Ora, tutto ciò che hai nel file cpp principale sarà composto da quanto segue
Riferimento:https://api.vexcode.cloud/v5/html/namespacevex.html
Gli argomenti futuri verranno trattati in futuro nelle sezioni più avanzate della Libreria VEX:
- Passaggio per valore e passaggio per riferimento
- Passa in un array
- Passare in una struttura