warning C4018: '<': Konflikt zwischen 'signed' und 'unsigned'



  • warum kommt diese warning immer wieder bei erst mal kommplieren und nicht mehr bei zweitem mal.
    spielt diese warnung ein gefahr für meine Tools?
    Wie kann ich diese Warnung beseitigen?

    Vielen Dank an euren tollen Forum



  • dokdok2 schrieb:

    warum kommt diese warning immer wieder bei erst mal kommplieren und nicht mehr bei zweitem mal.

    du musst die datei verändern, die das warning hervorruft. wenn sie nicht compiliert werden muss, siehste logischerweise kein warning mehr...

    dokdok2 schrieb:

    spielt diese warnung ein gefahr für meine Tools?

    ja. wenn ein 'signed' überläuft wird er negativ, bis der 'unsigned' überläuft braucht es doppelt so lange.

    dokdok2 schrieb:

    Wie kann ich diese Warnung beseitigen?

    gleiche variablentypen benutzen und sicherstellen dass keine ungewollten überläufe passieren können...



  • aber ich defeniere kein signed oder unsigned typen in meinem Tool.
    ich habe nur

    int variableA=0;
    

    oder

    double variable b=0.;
    

    trotzdem kommen diese warning!!



  • so'ne int-variable ist automatisch 'signed' wenn du die z.b. mit nem rückgabewert von 'strlen()' vergleichst (der ist unsigned), dann könnteste so ein warning zu gesicht bekommen...



  • ich bekomme einen integerwert aus einer datenbank zurück und übergebe ihn an mein int variable. ist das der Fall?



  • dokdok2 schrieb:

    ich bekomme einen integerwert aus einer datenbank zurück und übergebe ihn an mein int variable. ist das der Fall?

    also eine normale 'int' variable ist 'signed'. da musste mal rauskriegen welchen typ dieser wert aus der datenbank hat. vielleicht ist der unsigned? wenn ja, dann mach' aus der variablen ein 'unsigned int'.



  • Wie kann ich raus finden, dass mssql databse gibt signed oder unsigned int zurück.? ich denke solange in der db integer defefinert ist, dass es automatisch signed ist.



  • dokdok2 schrieb:

    Wie kann ich raus finden, dass mssql databse gibt signed oder unsigned int zurück.? ich denke solange in der db integer defefinert ist, dass es automatisch signed ist.

    naja, kann sein, aber diese mysql funktionen (wie mysql_fetch_row() usw.) geben doch strings zurück oder? die müssen dann in 'ints' umgewandelt werden. vielleicht liegt das das problem? (ich weiss ja nicht wie du's machst). und ob der 'int' in einer mysql ein 32-bit signed wert ist (wie bei visual studio) kann ich dir auch nicht sagen. musste mal in den dokus zu mysql suchen...



  • Naja ... du kannst das auch Problemlos in nen unsigned int casten ... wobei das sinnfrei in dem Fall ist ... musst das allerdings, ob signed oder unsigned ist egal, mit nem atoi machen...


Anmelden zum Antworten