Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Probleme mit einer Typendefinition

0 views
Skip to first unread message

Thomas Steinbach

unread,
Dec 9, 2009, 2:14:55 PM12/9/09
to
Hallo,

mein C compiler (gcc 3.4.5) spukt mir ein:

warning: type defaults to `int' in declaration of `SYSTEMTIME'

aus. Aber damit kann ich nich viel anfangen.
Was versucht mir gcc da zu sagen?

der Typ ist als

typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME,*LPSYSTEMTIME;

definiert.

btw: Gibt es irgendwo eine Art gcc-Fehler Referenz? Eine
Seite die ein wenig aufschluesselt was der gcc mit einer bestimmten
Fehlermeldung meint? Ich hatte mal sowas gefunden, dass
so ein paar Dinge erklaert, aber finde es einfach nicht wieder.

Thomas

bjthr

unread,
Dec 10, 2009, 12:40:07 PM12/10/09
to
Thomas Steinbach wrote:
>
> typedef struct _SYSTEMTIME {
> WORD wYear;
> WORD wMonth;
> WORD wDayOfWeek;
> WORD wDay;
> WORD wHour;
> WORD wMinute;
> WORD wSecond;
> WORD wMilliseconds;
> } SYSTEMTIME,*LPSYSTEMTIME;
>

Hallo,

das Problem ist wohl 'WORD' - den Typ kennt der Compiler nicht, deshalb
nimmt er 'int' an ...

Versuch mal

typedef unsigned short WORD;

vor der struct.

Nachlese bei MS hilft sicher auch - die haben's irgendwo in ihren
Headern versteckt...

Gru�

bjthr

Achim Peters

unread,
Dec 10, 2009, 1:09:22 PM12/10/09
to
bjthr schrieb:
>> WORD wYear;

> das Problem ist wohl 'WORD' - den Typ kennt der Compiler nicht, deshalb
> nimmt er 'int' an ...

Ja, nee - is klar.

Das gibt bei standardkonformen Compilern nat�rlich einen Syntaxfehler,
wenn sie WORD nicht kennen.

Bye
Achim

Thomas Steinbach

unread,
Dec 10, 2009, 7:41:57 PM12/10/09
to
Hallo bjthr,

>> typedef struct _SYSTEMTIME {
>> [...]
>> } SYSTEMTIME,*LPSYSTEMTIME;


>
> das Problem ist wohl 'WORD' - den Typ kennt der Compiler nicht, deshalb
> nimmt er 'int' an ...

> [...]

ja, das war schon der entscheidende Hinweis. Die Definitionen
sind zu dem Zeitpunkt nicht bekannt gewesen. Habe es jetzt klaeren
koennen. War einfach ein "#include <windows.h>" und das habe
ich einfach nicht bemerkt, da ich dachte <windows.h> bereits
vorher eingebunden zu haben, bzw. alles fehlende selbst definiert zu
haben. Jedenfalls habe ich das Nahelegende so erst nicht erkannt.
Ist wohl aber eine typische Geschichte, wenn man auf einen
"neuen" Fehler trifft und den Fehler sonstwo vermutet ;-)

Bleibt noch die Frage nach einer Art Datenbank mit "typischen"
Compiler-Fehler Meldungen und wie sie behoben wurden. bzw.
was diese "eigentlich" bedeuten koennten. Kennt jemand sowas?

Thomas

Claus Reibenstein

unread,
Dec 11, 2009, 3:26:38 AM12/11/09
to
Thomas Steinbach schrieb:

> Hallo bjthr,
�����

Wer? Wie spricht man das aus?

>> das Problem ist wohl 'WORD' - den Typ kennt der Compiler nicht, deshalb
>> nimmt er 'int' an ...

Oha! Selbstst�ndig Fehler "korrigierende" Compiler. �bel, �bel!

> Bleibt noch die Frage nach einer Art Datenbank mit "typischen"
> Compiler-Fehler Meldungen und wie sie behoben wurden. bzw.
> was diese "eigentlich" bedeuten koennten. Kennt jemand sowas?

So etwas wird es wohl kaum geben, da jeder Compilerhersteller seine
eigenen Ansichten hat, wie ein Fehler zu melden bzw. zu behandeln ist.
Es geh�rt schon eine gewisse �bung dazu, solche Fehlermeldungen zu
verstehen und richtig zu deuten. Da hilft auch keine Datenbank, sondern
nur ein sehr genauer Blick auf die als fehlerhaft ausgegebene sowie -
ganz wichtig - die vorangegangene Zeile (Semikolon vergessen). Notfalls
muss man in der Doku nachschlagen.

Nicht selten liegt der Fehler auch ganz woanders. Eine vergessene
geschweifte Klammer in einem mehrere tausend Zeilen langen Quellcode
lassen ihn schnell zum Qu�lcode werden :-)

Besonders lustig wird es, wenn Compiler eine gewisse "Eigenintelligenz"
entwickeln und Fehler selbstst�ndig "korrigieren" (so wie von bjthr
beschrieben). Das Ergebnis d�rfte in den seltensten F�llen dem
entsprechen, was der Programmierer gemeint hat. So etwas r�cht sich
sp�testens dann, wenn solche Programme auf eine andere Plattform
portiert werden sollen ...

Gru�. Claus

0 new messages