Ja
foo-> ist gleichbedeutend mit (*foo). aber besser lesbar, vor allem bei Mehrfach-Dereferenzierungen.
Ist aber keine Geheimwissenschaft das... ;-)
Druckbare Version
Ja
foo-> ist gleichbedeutend mit (*foo). aber besser lesbar, vor allem bei Mehrfach-Dereferenzierungen.
Ist aber keine Geheimwissenschaft das... ;-)
Moin, nochmal ein Nachtrag:
Das klappt soweit alles wunderbar.
Die Definition der Struktur steht in Header A
typedef struct
{
unsigned char Name[Name_Length];
unsigned char Bitfield[Daten_Length];
} Daten;
Heute hab ich ein weiteres Source- und Headerfile angelegt, in dem eine Funktion einen Pointer vom Typ Daten erwarten, so wie auch schon eine Funktion aus Header A.
In Header B produziert er mir nun aber nen Fehler,
../pca-routines.h:48: warning: type defaults to 'int' in declaration of 'Daten'
und
../pca-routines.h:48: error: expected ';', ',' or ')' before '*' token
wobei die Funktion
void PCA_Table (volatile Daten * Source)
{
char temp=0;
...
}
ist und einen solchen protoypen in Header B hat.
//Create Table from Image
void PCA_Table (volatile Daten * Source);
Ich habe auch schon "extern" versucht, brachte aber auch keine Lösung. Bei der Einbindung des Headers A in Header B oder Source B, gibts Fehler wegen Doppeldefinition..
Weiß jemand wo das Problem liegen könnte?
Natürlich muss auch in Header B das typedef bekannt sein (was es bei dir offensichtlich nicht ist). Also entweder schreibst du auch dort die komplette typedef-Anweisung rein (nicht so gut, weil du dann bei Änderungen an mehreren Stellen was ändern musst), oder du inkludierst Header A in Header B (auch nicht wirklich das Wahre), oder du packst das typedef in eine separate Header-Datei (z.B. types.h oder global.h) und inkludierst diese dann sowohl in A wie auch in B (wohl die beste Lösung).