Kan iemand me zeggen waarom het ene wel en het andere niet. Opgelost.

Beste mensen,

De code die ik probeer te schrijven verdeel ik, na het testen ervan, graag in overzichtelijke stukjes.
Ik knip er een stuk uit, plak dat in een nieuwe void welke ik in het oorspronkelijke deel aanroep.
In 99 van de 100 gevallen werkt dit voor mij ....... tot nu

ik plaats 2 stukjes code. Het enige verschil in mijn beleving is het aanroepen van de void maar tot mijn verbazing is het resultaat op het lcd totaal anders. Bij de code zonder void wordt lastRotaryCount wel op het scherm zichtbaar en met de void niet.
Doe ik iets verkeerd?

void rotary(int min, int max)
{ if (rotaryCount < min) rotaryCount = min;
  else if (rotaryCount > max) rotaryCount = max;
  if (lastRotaryCount != rotaryCount)lastRotaryCount = rotaryCount;
  lcd.setCursor(10, 1);
  lcd.print (lastRotaryCount);
  lcd.print ("    ");
#ifdef TEST
  lcd.setCursor(15, 3);
  lcd.print(button_state);
#endif
  button_state = digitalRead(ROTARY_BUTTON);
  if (button_state == LOW)
  { extraseconde = lastRotaryCount;
    Updateclock();
  }
  extraseconde = 0;
}
void rotary(int min, int max)
{ if (rotaryCount < min) rotaryCount = min;
  else if (rotaryCount > max) rotaryCount = max;
  if (lastRotaryCount != rotaryCount)lastRotaryCount = rotaryCount;
  lcd.setCursor(10, 1);
  void rest();
  button_state = digitalRead(ROTARY_BUTTON);
  if (button_state == LOW)
  { extraseconde = lastRotaryCount;
    Updateclock();
  }
  extraseconde = 0;
}


void rest() {
  lcd.print (lastRotaryCount);
  lcd.print ("    ");
#ifdef TEST
  lcd.setCursor(15, 3);
  lcd.print(button_state);
#endif

}

:sweat_smile:

void rest(); moet gewoon rest(); zijn.

En zo'n ding noemt een functie niet een void.

Dank!!!!
Met schaamrood op de kaken.
Dat ik daar overheen gekeken heb.

Ik hoop dat mijn volgende opmerking niet als aanvallen oid wordt ervaren want zo is het zeker niet bedoelt.
De juiste term in dit geval is een procedure. Een funktie geeft een resultaat.

Frits1956:
Dank!!!!
Met schaamrood op de kaken.
Dat ik daar overheen gekeken heb.

Ik hoop dat mijn volgende opmerking niet als aanvallen oid wordt ervaren want zo is het zeker niet bedoelt.
De juiste term in dit geval is een procedure. Een funktie geeft een resultaat.

Als je dan toch weet hoe het noemt, waarom zeg je dan void :stuck_out_tongue:

En function vs procedure... soms maakt men het verschil, soms niet. Eerste resultaat van google als je c++ function opzoekt: C++ Functions (dus een "procedure" als voorbeeld) :wink:

@Frtis1956:

Een functie die geen resultaat geeft, heeft een leegte als resultaat.

Vraag eens aan je vriend Google hoe dat in het Engels heet.

Tja, als pascal programma schrijver is er toch echt een giga verschil tussen functies en procedures.
Kan er niets aan doen.

Overigens: De oorspronkelijke vraag was waarom het ene stukje tekst het niet deed en het andere wel.
RaceManiac was zo vriendelijk mij erop merkzaam te maken dat ik een domme vergissing had gemaakt tijdens het kopieren, aanpassen en plakken wat bestond uit het per ongeluk het woordje void te laten staan. Nogmaals een welgemeend bedankt daarvoor.

Reacties hier op het forum hier staan er bij mij om bekend, dat er wat denigrerend gereageerd kan worden, en toch liet ik me verleiden tot een reactie. Dom natuurlijk, je ziet het resultaat.

Als je verschillende talen door elkaar gaat halen en vervolgens iemand (onterecht) terecht wijst daarop, dan kun je reacties verwachten.

Je had net zo goed eerder al kunnen zeggen dat je dat van Pascal kent, dan had ik niet aan hoeven nemen dat je dat ergens uit een Google resultaat had.
Maar dit is geen Pascal, het is een C variant.

Frits1956:
...plak dat in een nieuwe void welke ik...

Alle beginners noemen functies "void", want dat is wat ze in de code zien staan.
Dus ontstaan er veel misverstanden over.
Uitleggen of laten opzoeken wat het woord betekent, zou dan moeten helpen om te begrijpen waar een en ander vandaan komt.
Ik kan er weinig aan doen als iemand zich gekleineerd voelt als ik ergens heen wijs om dit te bereiken.
Ik denk niet dat er veel meer woorden over vuilgemaakt hoeven worden.