Forum: Mikrocontroller und Digitale Elektronik Struktur verkürzen


von chris (Gast)


Lesenswert?

Hi,
ich habe eine Struktur die recht gross ist, dabei handelt es sich um 
mehrere strukturen und unions die zu einer Struktur zusammengefasst 
sind.
Das ganze sieht dann ungefähr so aus: 
Param.sParaStore.sCanPara.uGuardTime.ui

Die Strukturen und unions kann ich nicht verändern, suche jetzt aber 
nach einer Möglichkeit das irgendwie zu verkleinern, da der Quelltext 
sonst sehr unüberscihtlich wird (vor allem wenn 2 oder 3 varialben aus 
dieser Struktur in einer Zeile stehen) - defines gehen leider nicht weil 
es ja variablen sind - was kann man da machen? bzw. was würdet Ihr 
machen? ide struktur so wie sie ist immer ausschreiben?

von Karl H. (kbuchegg)


Lesenswert?

inline Funktionen für den Zugriff schreiben.

von tuppes (Gast)


Lesenswert?

Was ist der Unterschied zwischen Param und sParaStore? Klingt, als 
könnte man das vereinigen.

Und wozu ist uGuardTime eine Union? Welchen anderen Zugriff außer ui 
brauchst du darauf?

Gruß,
Tuppes

von chris (Gast)


Lesenswert?

nein das ist ja das Problem, ich darf an der struktur nichts ändern - 
Param sind alle Parameter, ParaStore sind die, welche gespeichert werden 
(statt einzelne Variablen ins flash zu sichern wird eben diese eine 
struktur gesichert) CanPara erklärt sich von selbst und das union 
brauchen wir weil in machen modulen zwischem msb und lsb unterschieden 
wird (ich persönlich hätte ein einfaches int daraus gemacht und der Wert 
eben bei bedarf geshiftet, aber wie gesagt, ich kanns nicht ändern! :( 
)

werd mit die inline Funktionen mal anschauen, aber in meinem schlauen 
Buch "Programmieren in c" von kernighan / ritchie steht leider nix drin 
(wobei das buch sonst echt klasse ist!)

Gruß Chris

von Peter D. (peda)


Lesenswert?

Einfach per #define einen langen Text durch einen kurzen ersetzen.

Peter

von chris (Gast)


Lesenswert?

ahh, dann geht es also doch per define! - komischer Weise hat's vorhin 
nicht geklappt, jetzt geht es doch rolleyes
Danke!

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.