Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   872 / 872
(#) metabo7000 válasza tki hozzászólására (») 11:46 /
 
Be raktam a teljes kodot amiben a forditó kiborul (void) érték vissza hivás!
Bővebben: Link
(#) tki válasza metabo7000 hozzászólására (») 12:28 /
 
Valamilyen hibás magyarra fordítás eredménye ez a "(void) érték visszahívás", ilyesmi nincs abban a két hibaüzenetben, amit küldtél. Az első üzenet a lényeg, a második csak az mutatná meg, hogy hol történt a hiba. Az, hogy annak a nyílnak a hegye így, normál szövegként idemásolva az üzenetedet a "void" szóra mutat, nincs jelentősége. Ezzel kell csak foglalkozni:

"void_hivas1:15:10: error: too few arguments to function 'void test(int*, int*)'"

Azért kérdeztem, érted-e, mert szerintem meg sem próbáltad lefordítani. Ez a "too few arguments" szó szerint azt jelenti, hogy egy függvény fejében túl kevés argumentumot (paramétert) adtál meg annak hívásakor. Vagyis ez az alábbi sor nem jó a hívásnál, mert itt egyetlen paramétert adsz meg, hogy átadásra kerüljön a "test" függvénynek, nem kettőt:

test(&i);

Ha működő kódot szeretnél az általad mutatott "void test(int *a, int *b);" függvény hívására, akkor az így fog kinézni:

test(&i, &j);

Ehhez persze kell, hogy létezzen a Setup függvényben egy második integer változó is, vagyis az "int i;" definíció után kell egy "int j;" is. (A "j" betűt csak azért használtam, mert az következik az "i" után, ennek nincs jelentősége.)

Megadhatok egy működő kódot, de úgy nem biztos, hogy tanulsz belőle, el kellene tudnod mondani, hogy végül is mit szeretnél megvalósítani. Pusztán példakódnak néz ez ki, egy kísérletnek arra, hogy le tudod-e fordítani, de akkor meg jó lenne előtte még alapozni egy kicsit, különben nem fog menni. Ehhez jó pár magyar nyelvű, online, ingyenes C programozási útmutató is van az Interneten, könnyű rájuk találni. Tehát:

  1. void test(int *a, int *b)
  2. {
  3.  
  4. }
  5.  
  6. void setup()
  7. {
  8.     int i;
  9.     int j;
  10.  
  11.     test(&i, &j);
  12. }

Így le kell fordulnia, bár a két változónak illik értéket adni, mielőtt bármit is csinálunk velük, így véletlenszerű a tartalmuk, a C nyelv nem állít be számukra alapértéket, pl. nullát.
A hozzászólás módosítva: 12:30
(#) tki válasza metabo7000 hozzászólására (») 13:20 /
 
A hibaüzenetekből nem mindig derül ki a legmélyebben levő probléma. Ez a bővebben bemutatott kód elsősorban azért rossz, mert egy függvénydefiníció belsejébe beleraktál egy másik függvénydefiníciót. Ilyen szintaxis a C-ben nem létezik. Az encRotationToValue()-t a loop() fölé kell rakni önálló függvényként, és a loop()-ból meghívni a megfelelő paraméterekkel.

Valamint a cím szerint átadott változóknak is hibásan próbálod az értékét megváltoztatni (pl. "*value=" helyett "value=") - nyilván azért született a másik program, a tesztprogramod, mert nem tudtad lefordíthatóra összehozni, és ezért is kísérletezel az encRotationToValue() függvény elhelyezésével. Lásd a többi hozzászólásomban, amiket írtam.
A hozzászólás módosítva: 13:23
Következő: »»   872 / 872
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem