64 Bit Programmierung?



  • kellerassel schrieb:

    aber der kann ja nicht wissen, dass ich nur 32 und keine 64 bit brauch 😕

    Nein, wenn es explizit eine Rolle spielt, dann ist es natuerlich sinnvoll es mit anzugeben. Es besteht ein Unterschied zwischen brauchen und Rolle spielen. Beim Iterieren ueber Arrays nehme ich standardmaessig auch unsigned int, obwohl meine Arrays selten mehr als 5000 lang sind.



  • vllt. statt uint32_t lieber sowas uint_fast32_t 👍



  • knivil schrieb:

    Beim Iterieren ueber Arrays nehme ich standardmaessig auch unsigned int, obwohl meine Arrays selten mehr als 5000 lang sind.

    die variable geht ja auch auf den stack... man muss ja nicht gleich geizig werden - bischen sparsam reicht 😉



  • ich bekomm jetzt end viele fehler - wie komm ich aus der nummer wieder raus? 😞

    field precision should have type ‘int’, but argument 2 has type ‘size_t’

    printf("%.*s"
    	,str_len
    	,str
    );
    

    str_len ist ein size_t, das soll auch so bleiben 😞



  • das ist doch zum kotzen, ich leg mich erst mal ne runde hin - zum runterkommen. 😡



  • kellerassel schrieb:

    field precision should have type ‘int’, but argument 2 has type ‘size_t’

    printf("%.*s"
    	,str_len
    	,str
    );
    

    str_len ist ein size_t, das soll auch so bleiben 😞

    Versuchs mal mit

    printf("%.*s", static_cast<int>(str_len), str);
    

    Clang:

    warning: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat]
            std::printf("%.*s"
                         ~~^~
    


  • knivil schrieb:

    kellerassel schrieb:

    aber der kann ja nicht wissen, dass ich nur 32 und keine 64 bit brauch 😕

    Nein, wenn es explizit eine Rolle spielt, dann ist es natuerlich sinnvoll es mit anzugeben. Es besteht ein Unterschied zwischen brauchen und Rolle spielen. Beim Iterieren ueber Arrays nehme ich standardmaessig auch unsigned int, obwohl meine Arrays selten mehr als 5000 lang sind.

    Wieso "obwohl"?
    Warum nimmst du überhaupt den falschen Typ und nicht einfach size_t ?



  • Cyres schrieb:

    printf("%.*s", static_cast<int>(str_len), str);
    

    wenn schon dann (int)str_len, aber das ist einfach hässlich und im schlaf ist mir leider auch keine gute idee gekommen 😞



  • scheinbar muss man alles auf fwrite umschreiben. lustig, hab mir meinen tag heute anders vorgestellt, als debugfunktionen umzuschreiben...



  • TyRoXx schrieb:

    Warum nimmst du überhaupt den falschen Typ und nicht einfach size_t ?

    Weill ich faul bin.


Anmelden zum Antworten