Compiler spinnt

Gast #2215394
Lesenswert?

Hallo,

habe folgendes Problem:
Ich mache folgendes:
int x;
int *px;

px = &x;

UNd bekommen folgende Errors und Warnings:

warning: data definition has no type or storage class
warning: type defaults to 'int' in declaration of 'y'
error: conflicting types for 'px'
note: previous declaration of 'px' was here
warning: initialization makes integer from pointer without a cast

Sollte doch eigentlich funktionieren oder?

Danke schon mal
Gast #2215409
Lesenswert?

Xentex schrieb:
> Compiler spinnt

Was täten wir nur ohne die ganzen Anfänger, die ständig die vielen 
Fehler in den Compilern finden? Die ganzen Profis würden dann auf ewig 
völlig verbugte Compiler benutzen müssen!

Im Ernst: Mit solchen Aussagen macht man sich lächerlich.


Und: In den geposteten 3 Zeilen liegt der Fehler nicht. Lies die 
Warnungen und Fehler nochmal genau durch! Die betreffen erstens eine 
Variable namens y (welche in den 3 Zeilen nicht vorkommt) und zweitens 
steht dort:
> error: conflicting types for 'px'
> note: previous declaration of 'px' was here

Du hast px bereits vorher mit anderem Typ deklariert.
Gast #2215420
Lesenswert?

Sorry im Programm is es auch ein x musste das halt abtippen...

Ist natürlich:

int x;
int *px;
px = &x;

aber das problem ist, dass selbst wenn ich Variablen benutze die ganz 
sich noch nie verwendet worden der Fehler bleibt...

Habe mal

int pferd;
int *ppferd;
ppferd = &pferd;

versucht und funzt auch net...

Das ist ja eben das merkwürdige
Gast #2215422
Lesenswert?

Xentex schrieb:
> Hallo,
>
> habe folgendes Problem:
> Ich mache folgendes:
> int x;
> int *px;
>
> px = &x;

Einfach so, oder in irgendeinem Kontext?

> UNd bekommen folgende Errors und Warnings:
>
> warning: data definition has no type or storage class
> warning: type defaults to 'int' in declaration of 'y'

Ein y kommt in deinem Code gar nicht vor. Sicher, daß die Fehlermeldung 
sich auf diesen bezieht?

> error: conflicting types for 'px'
> note: previous declaration of 'px' was here
> warning: initialization makes integer from pointer without a cast

Das sieht mir aus, als ob die Zuweisung nicht in einer Funktion steht. 
Dann würde ich genau diese Meldungen erwarten.

> Sollte doch eigentlich funktionieren oder?

Kommt drauf an. Wenn das genannte der komplette Inhalt der Datei ist, 
dann nicht.

PS: Warum hast du dir eigentlich die Mühe gemacht, fein säuberlich alle 
Zeilennummern aus den Meldungen zu entfernen?
Gast #2215423
Lesenswert?

Bernhard M. schrieb:
> aberint x;
> int *px;
>
> px = &x;
>
> bringt genau Deine Fehlermeldungen...

Richtig, wenn die Zuweisung außerhalb einer Funktion steht, kommen die 
selben Fehlermeldungen. Da dort nur Deklarationen* stehen dürfen, 
versucht der Compiler das als solche zu verstehen.


*Ja, genaugenommen auch Definitionen. Aber auf jeden Fall keine 
Anweisungen.
#2215425
Lesenswert?

Klaus schrieb:
> Bernhard M. schrieb:
>> aberint x;
>> int *px;
>>
>> px = &x;
>>
>> bringt genau Deine Fehlermeldungen...
>
> Richtig, wenn die Zuweisung außerhalb einer Funktion steht, kommen die
> selben Fehlermeldungen. Da dort nur Deklarationen* stehen dürfen,
> versucht der Compiler das als solche zu verstehen.
>
>
> *Ja, genaugenommen auch Definitionen. Aber auf jeden Fall keine
> Anweisungen.

Und ich vermute er hat es genau so gemacht...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren