Forum: PC-Programmierung Frage zu C-Funktion mit struct als Parameter - kann man das struct direkt angeben?


von Ralf (Gast)


Lesenswert?

Hi,

ich habe eine C-Funktion, welche ein struct als Parameter erwartet. Ist 
es möglich, beim Funktionsaufruf die Daten direkt anzugeben, anstatt 
erst ein entsprechendes struct zu erzeugen und dieses zu übergeben?

Also anstatt:
1
typedef struct {
2
unsigned char ucC1;
3
unsigned char ucC2;
4
unsigned char ucC3;
5
unsigned char ucC4;
6
} _stStruct;
7
8
void func1(_stStruct);
9
10
void main(void) {
11
_stStruct vStruct;
12
13
vStruct.ucC1 = 1;
14
vStruct.ucC1 = 2;
15
vStruct.ucC1 = 3;
16
vStruct.ucC1 = 4;
17
18
func1(vStruct);
19
}
das hier:
1
void main(void) {
2
func1(1,2,3,4);
3
}

Ist das irgendwie möglich? Ich programmiere einen Microcontroller und 
möchte mir den Speicherplatz für die Variable "vStruct" sparen, weil die 
nur einmal verwendet wird.

Eine mögliche Lösung, die mir eingefallen ist, wäre das struct in den 
Code-Speicher zu verlegen, aber vielleicht geht es ja irgendwie so, wie 
ich oben beschrieben habe.

Danke

Ralf

von mr.chip (Gast)


Lesenswert?

Den Speicherplatz kannst du dir sowieso nicht sparen, die struct muss ja 
irgendwo gespeichert werden :-)

Besser: Die struct sauber anlegen und nach Gebrauch bewusst wieder 
löschen.

von Andreas K. (a-k)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.