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.
Funkció meghatározása
Most, hogy átmentünk néhány mintán, nézzük meg a függvénydefiníció általános formáját:
void függvénynév() {
Változódeklaráció stb.
Kifejezések...
//nem szükséges kifejezett visszatérés.
}
A függvény nem ad vissza különleges értéket, és nem ad vissza bejövő paramétereket.
void függvénynév(adattípusú változó) {
Változók deklarálása stb.
Kifejezések...
//nem szükséges kifejezett visszatérés.
}
Ha több változót szeretne, egyszerűen használja a "," elválasztóként:
Egy függvény nem ad vissza speciális értéket, csak egy paraméterrel.
void függvénynév (adattípusú változó, adattípusú változó stb.) {
Változók deklarálása stb.
Kifejezések...
//nem szükséges kifejezett visszatérés.
}
Egy függvény nem ad vissza speciális értéket, de egynél több paraméterrel.
void függvénynév (adattípusú változó, adattípusú változó stb.) {
Változók deklarálása stb.
Kifejezések...
visszatérési érték
}
Egy függvény egy adott adattípus értékét adja vissza, és egynél több paraméterrel.
A függvényreturntípusának meg kell egyeznie a függvény által visszaadott visszatérési érték adattípusával. Avisszatérési értéklehet állandó érték vagy változó. Meg kell előznie a „return” kulcsszót.”
A következő szabályok szabályozzák a visszaküldés típusát:
- A visszatérési típusra szinte nincs korlátozás, kivéve a tömböt. (A tömb egy másik fejlettebb téma az adatok létrehozásával kapcsolatban. Ez kívül esik ennek a cikknek a hatályán, és itt nem foglalkozik vele.
- A „void” visszatérési típus megadása azt jelenti, hogy nincs szükség visszatérési értékre. A „visszatérés” záradék implicit. Ez azt jelenti, hogy az „érvénytelen” függvény végén kifejezetten meg kell adni a „return” szót.
Függvény létrehozása a main() előtt vagy után?
A fordító felülről lefelé olvassa be a fájlt. Tehát a sorrend számít.
Vegyük például az egyszerű legnagyobb közös nevező (GCD) függvényt. Hibaüzenetet kap:nem deklarált 'getGCD' azonosító használata
Valójában ez igaz, függetlenül attól, hogy a fő( ) vagy más hívó funkcióblokkból származik, azaz a „hívott funkcióblokknak” meg kell előznie a „hívó funkcióblokkot”.
Két lehetséges megoldás:
int getGCD(int a, int b) {
int maradék = 1;
while (maradék > 0) {
maradék = a % b;
a = b;
b = maradék;
}
return a;
}
int main() {
Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
Helyezze a „hívott függvényt” a „hívó függvényblokk” fölé a „main().” példában.
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 maradék = 1;
while (maradék > 0) {
maradék = a % b;
a = b;
b = maradék;
}
return a;
}
Tegye a függvény prototípusát (más néven aláírást) a „hívás funkcióblokk” elé.
Mi a teendő, ha különböző fájlokban szeretné modularizálni a funkciókat?
1. lépés: Hozzon létre egy fejlécfájlt, és helyezze el ebbe a fájlba a függvény prototípusát.
pl. hozzon létre egy "myFuncs.h" nevű fájlt
Ezt a fejlécfájlt hozzá kell adnia a projekthez, mielőtt lefordítaná a kódot. Ez lehetővé teszi a VEXcode Pro V5 IDE számára, hogy „tudatában legyen” ennek az új fejlécfájlnak, mielőtt elkezdi felépíteni a projektet.
Íme, hogyan:



Ebben a „common.h” fejlécfájlban (bármit elnevezhet, ha alfanumerikus, szóköz nélkül).
2. lépés: Hozzon létre egy külön cpp-fájlt, például common.cpp néven

//ez a common.cpp fájl
int getGCD(int a, int b) {
int maradék = 1;
while (maradék > 0) {
maradék = a % b;
a = b;
b = maradék;
}
return a;
}
Helyezze át a getGCD(...) függvényt ebbe a fájlba
#include "vex.h"
#include "common.h"
a vex névtér használatával;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
Most a fő cpp fájlban csak a következőkből áll majd
Hivatkozás:https://api.vexcode.cloud/v5/html/namespacevex.html
A jövőbeni témákkal a VEX Library fejlettebb részei foglalkoznak a jövőben:
- Pass by value vs. Pass by reference
- Passz egy tömbben
- Passz egy szerkezetben