Problem mit struct
-
Hallo,
Ich habe ein Problem mit Strukturen:
Wenn ich folgendes probiere
struct Foo { int x; }; int main() { struct Foo f; return 0; }
bekomme ich folgende Fehler:
error C2065: 'Foo' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'f'
error C2065: 'f' : undeclared identifierUnd wenn ich das probiere
typedef struct Foo { int x; }Foo; int main() { Foo f; return 0; }
Bekomme ich das hier:
error C2275: 'Foo' : illegal use of this type as an expression
error C2146: syntax error : missing ';' before identifier 'f'
error C2065: 'f' : undeclared identifierDas hier wiederum geht:
struct Foo { int x; }f; int main() { f.x=5; return 0; }
Das finde ich schon komisch, da ich mich an diesen Beispielen orientiert habe:
[url]
http://www.c-plusplus.net/forum/viewtopic-var-t-is-160610-and-highlight-is-struct.html
[/url][url]
http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_017_001.htm
[/url]Meint ihr, dass es vielleicht daran liegt, das ich mit dem Visual Studio 2005 programmiere?
Also das da irgendwas verstellt sein könnte?Ich habe erst ein leeres Win32 Konsolenprojekt erstellt und dann die C-Datei hinzugefügt.
Bei den Projekteigenschaften habe ich eingestellt, das der Compiler das Projekt als C-Code compilieren soll.
-
alle 3 codes sehen eigentlich fehlerfrei aus. vielleicht compilierst du es doch als c++? in c++ ist vieles recht seltsam...
-
philosoph schrieb:
struct Foo { int x; }; int main() { struct Foo f; return 0; }
... hab ich auf Linux Fedora FC3 mit gcc 3.4.2 übersetzt, völlig ohne Fehlermeldungen, mittels "gcc -o tst tst.c"...
-
Jo danke,
hab meinen Fehler gefunden - hatte vor dem
struct Foo f;
noch eine printf - Anweisung.
Das darf man ja in C nicht - ist aber ein Beweiß, dass ich wirklich in C programmiere
-
Aha... und wie sollen wir den Fehler finden, wenn du uns nicht den Originalcode zeigst? Bitte nächstes mal wirklich den echten Code posten, dann klappt's auch mit der Fehlerdiagnose.
MfG
GPC