A függvények létrehozásának szintaxisának megértése a VEXcode Pro V5-ben

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

 Képernyőkép a VEXcode V5 programozói felületről, amely különféle kódolási blokkokat és opciókat mutat be a VEX Robotics rendszerek programozására, illusztrálva a programozási részben a felhasználók számára elérhető funkciókat.

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:

Képernyőkép egy programozási felületről, amely a V5 kategória jellemzőit mutatja be, beleértve a kódrészleteket és a fejlesztőknek szánt eszközöket, illusztrálva a programozási részben elérhető funkciókat.

Képernyőkép a V5 kategória leírásában található programozással kapcsolatos tartalomról, amely bemutatja a legfontosabb jellemzőket és funkciókat a fejlesztők számára.

Képernyőkép a V5 programozási kategória leírásáról, amely bemutatja a V5 platform programozásával kapcsolatos legfontosabb jellemzőket és funkciókat.

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

Képernyőkép egy programozási felületről, amely különféle kódolási lehetőségeket és funkciókat mutat be, illusztrálva a V5 kategória leírásának funkcióit és elrendezését a programozási részben.

//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

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: