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.
Funkcijos apibrėžimas
Dabar, kai peržiūrėjome kelis pavyzdžius, pažvelkime į bendrą funkcijos apibrėžimo formą:
void function-name() {
Kintamųjų deklaracijos ir kt.
Išraiškos...
// nereikia aiškaus grąžinimo.
}
Funkcija nepateikia jokios specialios reikšmės ar įeinančių parametrų.
void function-name(duomenų tipo kintamasis) {
Kintamųjų deklaracijos ir kt.
Išraiškos...
// nereikia aiškaus grąžinimo.
}
Jei norite kelių kintamųjų, tiesiog naudokite „,“ kaip skiriamąjį ženklą:
Funkcija nepateikia jokios specialios reikšmės, bet su vienu parametru.
void function-name(duomenų tipo kintamasis, duomenų tipo kintamasis ir kt.) {
Kintamųjų deklaracijos ir kt.
Išraiškos...
// nereikia aiškaus grąžinimo.
}
Funkcija nepateikia jokios specialios reikšmės, bet su daugiau nei vienu parametru.
void function-name(duomenų tipo kintamasis, duomenų tipo kintamasis ir kt.) {
Kintamųjų deklaracijos ir kt.
Išraiškos...
grąžinti grąžinamą reikšmę
}
Funkcija grąžina konkretaus duomenų tipo reikšmę ir įvedant daugiau nei vieną parametrą.
Funkcijosreturntipas turi būti toks pat kaip funkcijos grąžinamos reikšmės duomenų tipas. Grąžinama reikšmė,gali būti konstanta arba kintamasis. Prieš jį turi būti įrašytas raktinis žodis „return.”
Grąžinimo tipą reglamentuoja šios taisyklės:
- Grąžinimo tipui beveik nėra jokių apribojimų, išskyrus masyvą. (Masyvas yra dar viena sudėtingesnė duomenų kūrimo tema. Tai nepatenka į šio straipsnio taikymo sritį ir čia neapima.
- Nurodymas, kad grąžinimo tipas „void“ reiškia, kad grąžinimo vertės nebūtina. Išlyga „grąžinimas“ yra numanoma. Tai reiškia, kad „tuščiosios“ funkcijos pabaigoje turite aiškiai nurodyti „grįžti“.
Funkcijos kūrimas prieš main() ar po?
Kompiliatorius nuskaito jūsų failą iš viršaus į apačią. Taigi tvarka turi reikšmės.
Paimkime paprastą didžiausio bendro vardiklio (GCD) funkciją kaip pavyzdį. Gausite klaidą:naudojamas nedeklaruotas identifikatorius „getGCD“
Tiesą sakant, tai tiesa, nesvarbu, ar jis yra iš pagrindinio ( ), ar iš kito iškvietimo funkcijų bloko, ty „iškviestas funkcinis blokas“ turi būti prieš „skambinimo funkcijų bloką“.
Du galimi sprendimai:
int getGCD(int a, int b) {
int liekana = 1;
while (liekana > 0) {
liekana = a % b;
a = b;
b = liekana;
}
return a;
}
int main() {
Brain.Screen.printAt(5,60, „GCD( %d, %d ) = %d“, getGCD(60, 100));
}
Pavyzdyje „main().“ perkelkite funkciją „skambinama funkcija“ virš „skambinimo funkcijų bloko“.
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 liekana = 1;
while (liekana > 0) {
liekana = a % b;
a = b;
b = liekana;
}
return a;
}
Įdėkite funkcijos prototipą (taip pat vadinamą parašu) prieš „skambinimo funkcijų bloką“.
O kas, jei norite moduliarizuoti funkcijas skirtinguose failuose?
1 veiksmas: sukurkite antraštės failą ir įdėkite funkcijos prototipą į šį failą.
pvz., sukurkite failą pavadinimu „myFuncs.h“
Prieš sudarydami kodą, turite „pridėti“ šį antraštės failą į savo projektą. Tai leidžia VEXcode Pro V5 IDE „suvokti“ apie šio naujo antraštės failo įtraukimą prieš pradedant kurti jūsų projektą.
Štai kaip:



Šiame antraštės faile „common.h“ (galite pavadinti ką tik norite, jei jis yra raidinis ir skaitinis be tarpo).
2 veiksmas: sukurkite atskirą cpp failą, pvz., common.cpp

//tai yra common.cpp failas
int getGCD(int a, int b) {
int liekana = 1;
while (liekana > 0) {
liekana = a % b;
a = b;
b = liekana;
}
return a;
}
Perkelkite funkciją getGCD(...) į šį failą
#include „vex.h“
#include „common.h“
naudojant vardų erdvę „vex“;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD( %d, %d ) = %d", getGCD(60, 100));
}
Dabar viską, ką turite pagrindiniame cpp faile, sudarys šie dalykai
Nuoroda:https://api.vexcode.cloud/v5/html/namespacevex.html
Ateities temos bus nagrinėjamos sudėtingesnėse VEX bibliotekos skyriuose:
- Praeiti pagal vertę ir praleisti pagal nuorodą
- Perduoti masyve
- Pereikite į struktūrą