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... //aiškaus grąžinimo nereikia. }
Funkcija nepateikia jokios specialios reikšmės ar įeinančių parametrų.
void funkcijos pavadinimas(duomenų tipo kintamasis) { Kintamųjų deklaracijos ir kt. Išraiškos... //aiškaus grąžinimo nereikia. } Jei norite kelių kintamųjų, tiesiog naudokite "," kaip skirtuką:
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... //aiškaus grąžinimo nereikia. }
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ąžinimo vertę }
Funkcija grąžina konkretaus duomenų tipo reikšmę ir įvedant daugiau nei vieną parametrą.
Funkcijosgrąžinimotipas turi būti toks pat kaip ir funkcijos grąžinamos vertės duomenų tipas. grąžinimo reikšmėgali būti pastovi reikšmė 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“.
Sukurti funkciją 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ą:nedeklaruoto identifikatoriaus „getGCD“ naudojimas
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 (likutis > 0) { liekana = a % b; a = b; b = liekana; } grąžinimas 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 (likutis > 0) { liekana = a % b; a = b; b = liekana; } grąžinimas a; }
Įdėkite funkcijos prototipą (taip pat vadinamą parašu) prieš „skambinimo funkcijų bloką“.
Ką daryti, jei norite moduliuoti skirtingų failų funkcijas?
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., bendrą.cpp
//tai yra bendrasis.cpp failas int getGCD(int a, int b) { int likutis = 1; while (likutis > 0) { liekana = a % b; a = b; b = liekana; } grąžinimas 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ą