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

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 function-name() {

	Változók deklarációi 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ációi 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ációi 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ációi stb.
	Kifejezések...
	visszatérési érték
}

A függvény egy adott adattípus értékét adja vissza, és egynél több paraméterrel.

A vissza függvény típusának meg kell egyeznie a függvény által visszaadott visszatérési érték adattípusával . A visszatérési érték lehet á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üzenet jelenik meg: deklarálatlan azonosító használata getGCD'

 VEXcode_V5_Text_xi2kumoPkA.png

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 (fennmaradó > 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 remainder = 1;
  while (remainder > 0) {
    remainder = a % b;
    a = b;
    b = remainder;
  }
  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 modularizálni szeretné a funkciókat különböző fájlokban?

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.

például. 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 projektjét.

Í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 már minden, ami a fő cpp fájlban van, a következőkből áll

Hivatkozás: https://api.vexcode.cloud /v5/html/namespacevex.html

A jövőbeni témákkal a Tudásbázis 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: