Hallo,
ich experimentiere mit dem AVR-Studio und will dabei meine sehr
rudimentären C-Kenntnisse etwas aufpeppeln.
Dazu folgende Frage, wie überträgt man Variablen von einer Funktion in
die andere?
Es gibt ja folgende Arten von Variablen:
lokal - gilt nur in der jeweiligen Funktion
global - gilt funktionsübergreifend (also in allen Funktionen)
volatil - gilt funktionsübergreifend und in allen Interrupt-Routinen
Wenn man jetzt eine lokale Variable in eine andere Funktion übertragen
möchte, wie geht man am besten vor?
Nebenbei gefragt, wann muss man void verwenden und wann nicht?
(void bedeutet ja so etwas wie leer, wird es immer benutzt, wenn keine
Werte zwischen den jeweiligen Funktionen übertragen werden?)
1 | i_verdoppeln (b = i) { // i_verdoppeln-Funktion, Wert von i auf b übertragen
|
2 | b = b * 2; // ??? b ist allerdings noch gar nicht deklariert
|
3 |
|
4 | // ??? wie jetzt weiter, der Wert von b muss ja in i in der main-Funktion gelangen
|
5 | }
|
6 |
|
7 | void main () { // main-Funktion
|
8 |
|
9 | uint8_t i = 2;
|
10 |
|
11 | i_verdoppeln (i); // Aufruf der i_verdoppeln-Funktion
|
12 |
|
13 | PORTC = i; // den Wert von i auf Port C ausgeben, hier i = 4
|
14 |
|
15 | }
|
16 | return 0;
|