www.mikrocontroller.net

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


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
typedef struct {
unsigned char ucC1;
unsigned char ucC2;
unsigned char ucC3;
unsigned char ucC4;
} _stStruct;

void func1(_stStruct);

void main(void) {
_stStruct vStruct;

vStruct.ucC1 = 1;
vStruct.ucC1 = 2;
vStruct.ucC1 = 3;
vStruct.ucC1 = 4;

func1(vStruct);
}
das hier:
void main(void) {
func1(1,2,3,4);
}

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

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.