Problem mit Warnung...

zwob

Grünschnabel
hallo,

ich hab grad erst angefangen C++ zu lernen. davor hab ich allerdings schon viel mit HTML programmiert, hab also schon n bisschen erfahrung auf dem gebiet.

mein problem: ich hab den unten aufgeführten quelltext erzeugt. der kompilierer zeigt mit dann aber eine warnung an und ich weiß nich, wie ich damit umgehen soll. die warnung lautet: "unsichere Kombination von Typ 'int' mit Typ 'const bool' in einer Operation"

Code:
void main()
{if(!0)ELSE:switch(int x=0)
{case 1:break;default:x+=1;if(x==true)goto ELSEIF; break;}
 else ELSEIF:if(1==true)goto ELSE;}
 
hallo zwob
dafür das Sie gerade erst angefangen haben gehen Sie aber schon ziemlich professionell vor.
Aber nun zu Ihrem Problem: Das ist soweit ich weiß ein Fehler im Compiler, hatte ich auch schon 2 mal.
Versuchen Sie mal den Wert in einen unsigned long void pointer zu casten. Womöglich ist es damit schon erledigt.
Unter gewissen Umständen kann es auch sein das ein Update auf ServicePack 2 hilft. Ist ja in jedem Fall zu empfehlen, also einfach mal ausprobieren.
 
zwob hat gesagt.:
hallo,

ich hab grad erst angefangen C++ zu lernen. davor hab ich allerdings schon viel mit HTML programmiert, hab also schon n bisschen erfahrung auf dem gebiet.

mein problem: ich hab den unten aufgeführten quelltext erzeugt. der kompilierer zeigt mit dann aber eine warnung an und ich weiß nich, wie ich damit umgehen soll. die warnung lautet: "unsichere Kombination von Typ 'int' mit Typ 'const bool' in einer Operation"

Code:
void main()
{if(!0)ELSE:switch(int x=0)
{case 1:break;default:x+=1;if(x==true)goto ELSEIF; break;}
 else ELSEIF:if(1==true)goto ELSE;}

Ein interessanter Code. Was soll er bewirken?
 
Was hat ein update auf Windows SP2 mit einer Compilerfehlermeldung zu tun?

Der Compiler gibt einzig und allein ne Warnung weil du einen Integer mit nem bool
vergleichst nehm ich mal an...

z.B. sowas:
Code:
if(1==true)

Das kannst du dir sparen die Bedinung ist eh immer erfüöllt.

Code:
if(x==true)

Besser:

Code:
if(x)
oder
Code:
if(x != 0)

Gruß

RedWing
 
Kachelator hat gesagt.:
Jo. Ich mir nicht sicher, ob der ursprüngliche Post ganz ernst gemeint war. Ebenso der zweite.

Jetzt wo dus sagst... :)
Wenns so ist sollte sich ein Admin ranmachen und Thread plus Benutzer löschen,
wenn nicht sollte sich der Autor mal melden...

Auf jeden Fall ne komische Art von Humor...

Gruß

RedWing
 
ich möchte mich zunächst für die schnellen antworten bedanken, aber da werfen sich mir gleich wieder neue fragen auf.

nachdem ich mich noch mal eingehend mit dem quelltext beschäftigt hab, ist mir aufgefallen, dass "void" für die main-funktion ja gar nicht richtig ist. das muss doch "int" sein oder? oder ist das egal? das behebt den kompiliererfehler allerdings auch nicht.
das servicepack 2 hab ich gar nicht. muss ich das wirklich installieren oder war das ein scherz? also ich weiß, dass das SP2 fehler beheben soll, aber ich hab doch gar kein windows xp.
und wie geht das mit dem long void pointer (vor allem: was ist casten?). ich bin wie gesagt noch neu auf dem gebiet und mit einer solchen flut von fachbegriffen etwas überfordert.
 
Erklär doch mal kurz, was dein Programm tun soll. Dann können wir nämlich auch den Code besser verstehen und dir eher helfen. Im Moment weiss ich gar nicht, wo ich ansetzen soll, sorry!
 
cast = Typumwandlung, sorry hab mich da ein bisschen im "Slang" verloren.

So wie ich das sehe is das nicht wirklich ein sinvoller Quellcode - ist wohl nur das Grundgerüst (vielleicht um bei der Fehlersuche den Überblick zu behalten?).
Ich schätze das soll mal ein (nicht-rekursiver) Suchalgorithmus für einen Binärbaum (und damit wohl in einer abstrakten Templateklasse abgekapselt) werden. Lieg ich da richtig? ^^


RedWing hat gesagt.:
Was hat ein update auf Windows SP2 mit einer Compilerfehlermeldung zu tun?

Ein Update auf das ServicePack 2 kann durchaus helfen, da auch ein Compiler Windows-API's verwendet/ verwenden muss (um die HAL kommt auch er nicht herum)!
Aber das hat sich ja eh erledigt (kein XP).
 
Zurück