error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unter
-
hi
bei mir kommt meistens
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
wie könnte man das beheben?
bei folgender Stelle passiert das:
typedef(*cmdcallback_t)();
danke im voraus!
-
Hallo,
Gib einen return Wert an:typedef void (*cmdcallback_t)();
-
int oder?
-
nöö, jenachdem was du haben willst
-
problemchen schrieb:
...
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
...
Also was kann man denn an der Fehlermeldung nicht verstehen ?- Es fehlt ein "Typspezifizierer" ... was ein "Typ" ist, sollte man schon wissen, wenn man mit Funktionszeigern hantiert und dass man ihn angeben ("spezifizieren") muss, damit der Compiler weiß, welchen man meint, ist auch nicht so überraschend. Dafür gibt's ja so Sachen wie "int" oder "std::string" oder ....
- ... da er fehlt, nimmt der Compiler "int", weil er ja nichts Besseres gesagt bekommt - steht ja da.
- ... und dass dieses Vorgehen (genannt "default-int" = "Wenn da nichts steht, nimm int") eigentlich nicht mehr vom C++-Standard unterstützt wird, steht da auch.
Also es gibt ja wirklich kryptische Fehlermeldungen in C und C++ .... aber dass hier oftmals welche nachgefragt werden, die die Qualität von "Bitte machen Sie ein Semikolon hierhin !" haben, überrascht schon wirklich...
Ist wahrscheinlich die "OH - tut irgendwie nicht - ich frag mal im INET"-Pest....
Gruß,
Simon2.
-
Nabend,
Simon2 schrieb:
problemchen schrieb:
...
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
...
Also was kann man denn an der Fehlermeldung nicht verstehen ?- Es fehlt ein "Typspezifizierer" ... was ein "Typ" ist, sollte man schon wissen, wenn man mit Funktionszeigern hantiert und dass man ihn angeben ("spezifizieren") muss, damit der Compiler weiß, welchen man meint, ist auch nicht so überraschend. Dafür gibt's ja so Sachen wie "int" oder "std::string" oder ....
- ... da er fehlt, nimmt der Compiler "int", weil er ja nichts Besseres gesagt bekommt - steht ja da.
- ... und dass dieses Vorgehen (genannt "default-int" = "Wenn da nichts steht, nimm int") eigentlich nicht mehr vom C++-Standard unterstützt wird, steht da auch.
Also es gibt ja wirklich kryptische Fehlermeldungen in C und C++ .... aber dass hier oftmals welche nachgefragt werden, die die Qualität von "Bitte machen Sie ein Semikolon hierhin !" haben, überrascht schon wirklich...
Ist wahrscheinlich die "OH - tut irgendwie nicht - ich frag mal im INET"-Pest....
Gruß,
Simon2.
Zum Grossteil geb ich dir recht. Hier speziell natuerlich auch (bei dem Code).
Leider ist es so, dass der ms compiler diese Meldung bei allen Unmoeglichen
Gegebenheiten auspuckt, weil er nicht in der Lage ist, ordentliche
Fehlermeldungen zu generieren.Aber wie gesagt, in diesem speziellen Fall und bei diesem Code, muss ich dir
zustimmen.gruss
v R
-
Die Meldung kommt nur, wenn es der Tatsache entspricht, das dieser Fehler vorliegt.
-
virtuell Realisticer schrieb:
Leider ist es so, dass der ms compiler diese Meldung bei allen Unmoeglichen Gegebenheiten auspuckt, weil er nicht in der Lage ist, ordentliche Fehlermeldungen zu generieren.
Wobei es hier sprachliche Unterschiede gibt (englisch/deutsch). Ich kenne kaum einen Compiler der für einen Anfänger wirklich leicht verständliche Fehlermeldungen generiert, und MS bringt es grad auf die Spitze (Wer schlechte Übersetzungen liefert, okay, Dokumentation ist nunmal meist in Englisch; Wer aber noch dazu Klassennamen in einer Dokumentation übersetzt gehört geschlagen ;p).
cu André
-
virtuell Realisticer schrieb:
...Leider ist es so, dass der ms compiler diese Meldung bei allen Unmoeglichen Gegebenheiten auspuckt, weil er nicht in der Lage ist, ordentliche Fehlermeldungen zu generieren....
Also ich arbeite (unter anderem) auch mit dem anerkannt schlechtesten Compiler der Welt
... dem MS-VS 6.0. Und da ist es mir noch NIE untergekommen, dass er diese Fehlermeldung in einem falschen Zusammenhang gebracht hat... es fehlte immer der Typspezifizierer.
Aber ich stimme auch Dir zu: Compilermeldungen bei C oder C++ sind oftmals sehr kryptisch/irreführend - besonders, wenn man sich nicht die ersten beiden, sondern die irgendeines Folgefehlers ansieht.
Gruß,
Simon2.
-
Simon2 schrieb:
virtuell Realisticer schrieb:
...Leider ist es so, dass der ms compiler diese Meldung bei allen Unmoeglichen Gegebenheiten auspuckt, weil er nicht in der Lage ist, ordentliche Fehlermeldungen zu generieren....
Also ich arbeite (unter anderem) auch mit dem anerkannt schlechtesten Compiler der Welt
... dem MS-VS 6.0. Und da ist es mir noch NIE untergekommen, dass er diese Fehlermeldung in einem falschen Zusammenhang gebracht hat... es fehlte immer der Typspezifizierer.
Mir ist es schon vorgekommen - als Folgefehler, nachdem er den (vorhandenen) Typspezifizierer als "unbekannter Bezeichner" eingestuft hatte (der echte Fehler war es, ein #include zu vergessen).
-
(D)Evil schrieb:
Die Meldung kommt nur, wenn es der Tatsache entspricht, das dieser Fehler vorliegt.
Das ist schlicht nicht korrekt. Zum einen gibt es default-int in C++ nicht und
zum anderen kommt dieser Fehler, wenn der Typ nicht festgestellt worden ist.Dann aber koennte man der Meinung sein, dass er einem mitteilt, dass der Typ
nicht bekannt sei, was er aber nicht tut und einen statt dessen mit dieser,
voellig unnuetzen, Fehlermeldung zumuellt.Simon2 schrieb:
...auch mit dem anerkannt schlechtesten Compiler der Welt ;)...
Da scheinst du aus meinem geschriebenen etwas falsch interpretiert zu haben.
CStoll schrieb:
Simon2 schrieb:
virtuell Realisticer schrieb:
...Leider ist es so, dass der ms compiler diese Meldung bei allen Unmoeglichen Gegebenheiten auspuckt, weil er nicht in der Lage ist, ordentliche Fehlermeldungen zu generieren....
Also ich arbeite (unter anderem) auch mit dem anerkannt schlechtesten Compiler der Welt
... dem MS-VS 6.0. Und da ist es mir noch NIE untergekommen, dass er diese Fehlermeldung in einem falschen Zusammenhang gebracht hat... es fehlte immer der Typspezifizierer.
Mir ist es schon vorgekommen - als Folgefehler, nachdem er den (vorhandenen) Typspezifizierer als "unbekannter Bezeichner" eingestuft hatte (der echte Fehler war es, ein #include zu vergessen).
Wenn er das bei unserem Projekt bloss machen wuerde, tut er nur nicht. Ich
denk mir das ja nicht aus.gruss
v R