Variable / Methode Problem...

Hallo Community,

ich wollte mal fragen ob mir jemand bei meinem Problem helfen kann.

Folgendes Problem habe ich:

Ich habe am Anfang des Scriptes eine Variable deklariert und diese Variable hat auch einen Wert bekommen, nun möchte ich in einer Methode auf diese Variable zugreifen und den Wert ändern!

Beispiel:

int x = 10;

void test()
{

 blablabla

x = 20;

}

das x in der Methode soll das selbe sein wie im Script....

Hoffe mir kann jemand helfen...

Gruß

Hi, solange die Methode test() nicht in einer Lib verwendet wird, nennt man diese auch einfach nur Funktion.

Wenn die Variable die gleiche sein soll, kannst du mit Referenzen arbeiten. Beispiel:

int x=10;

void test(int &variable)
{
  variable = 20;
}

//aufruf
test(x);
// x beinhaltet nun den wert 20.

Oder du deklarierst die Variable global, so wie du es gemacht hast, dann wird die Variable auch am Ende den Wert 20 haben.

int x = 10;

void test()
{
  x = 20;
}

test(); //x hat nun den wert 20

Ich hoffe das hilft dir weiter, ansonsten muss du dein Problem genauer erklären.

Vielen Dank,

kannst du mir noch einmal schreiben wie das mit dem Global geht?
Weil ich kann an deinem Beispiel nicht erkennen wie das mit dem Global funktioniert.

Danke und Gruß

Globale Variablen sind Variablen die Außerhalb von Funktionen deklariert werden. Lokale Variablen sind die, die innerhalb von Funktionen verwendet werden.

//global 
int x=0;

void add(unsigned int add_num)
{
  x += add_num;
}

void sub(unsigned int sub_num)
{
  x -= sub_num;
}

void reset()
{
  x = 0;
}

void setup(void)
{   
  Serial.begin(9600);
}

void loop(void)
{
  Serial.println(x);  // ausgabe x = 0
  
  add(3);  
  Serial.println(x);  // ausgabe x = 3

  sub(6);
  Serial.println(x);  // ausgabe x = -3

  reset(x);

  delay(1000);
}

Dieses Beispiel stellt die Grundfunktionen eines Taschenrechners dar. Wenn du dieses Beispiel auf deinen Arduino läds, siehst du das Ergebnis im Seriellen Monitor.

Danke für dein Super Support