Forum: PC-Programmierung Struct in mehreren Headern


von Martin (Gast)


Lesenswert?

Moin Moin,
ich habe hier Structs, die in mehreren Unterprogrammen verfügbar sein 
sollen:
header1:
1
struct test
2
{
3
 unsigned char val1;
4
 unsigned char val2;
5
...
6
7
};
header2:
1
struct test
2
{
3
 unsigned char val1;
4
 unsigned char val2;
5
...
6
7
};
usw.
In den dazugehörigen Sourcefiles werden die Structs in den jeweiligen 
Funktionen verwendet.

Im Hauptprogramm (main) lege ich ein "Struct-Object" an:
1
 
2
struct test test_all={1,2,...};

Was passiert denn da eigentlich genau im Header?
Wird aufgrund dessen, dass die Structs in mehreren Headern verfügbar 
sind, jedes mal mehr Speicher reserviert?

Ist es vielleicht besser die Structs in einem Header zu sammeln um den 
Header dann, falls benötigt, in das Source-File einzubinden?

Fragen über Fragen! (:

Viele Grüße

von Peter II (Gast)


Lesenswert?

Martin schrieb:
> Was passiert denn da eigentlich genau im Header?
> Wird aufgrund dessen, dass die Structs in mehreren Headern verfügbar
> sind, jedes mal mehr Speicher reserviert?
es wird überhaupt kein speicher dafür gebraucht, erst wenn du eine 
variabel damit anlegst.

> Ist es vielleicht besser die Structs in einem Header zu sammeln um den
> Header dann, falls benötigt, in das Source-File einzubinden?
ja auf jeden Fall oder wie willst du sicherstellen das du immer alle 
stellen änderts wenn sich mal die Struktur ändert.

von Martin (Gast)


Lesenswert?

Peter II schrieb:
> ja auf jeden Fall oder wie willst du sicherstellen das du immer alle
> stellen änderts wenn sich mal die Struktur ändert.

Haja, eigentlich eine dumme Frage, aber daran habe ich wirklich nicht 
gedacht...

Peter II schrieb:
> es wird überhaupt kein speicher dafür gebraucht, erst wenn du eine
> variabel damit anlegst.

Auch nicht, wenn man das nicht über typedef struct macht?

von Peter II (Gast)


Lesenswert?

Martin schrieb:
> Auch nicht, wenn man das nicht über typedef struct macht?

auch dann nicht. Erst wenn du eine Variable hast.

von Martin (Gast)


Lesenswert?

Peter, vielen Dank!

Jetzt kann ich so richtig loslegen.


Viele Grüße
Martin

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.