Hi allerseits,
Waehrend ich mit MS Visual Studio an C-Code gearbeitet habe bin ich ueber einen merkwuerdigen Fehler mit 64 bit integers gestolpert:
Folgendes Codefragment liefert statt der erwarteten Ausgabe "2,3" den Unsinn "2,0" zurueck.
Code
typedef struct{
unsigned __int64 top;
unsigned __int64 bot;
} large_type;
int main(int argc, char **argv){
large_type bad = {2,3};
printf( "bad is: %llu, %llu\n", bad.top, bad.bot);
}
Alles anzeigen
Wenn ich 32 bit integers statt 64 verwende ist alles okay, auch einzelne 64 bit integers (ohne typedef) funktionieren problemlos.
gcc macht keine Probleme mit sowas, aber nachdem es mich einen ganzen Tag gekostet hat diesen Fehler zu finden ist es halt etwas unbefriedigend jetzt einfach den Kompiler zu wechseln ohne zu wissen was der Hintergrund ist.
Habt ihr irgendeine Ahnung, woran das liegen koennte?
lg
Sys