Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

C-Programm liefert falsche Ausgabe

Nobody666 / 4 Antworten / Flachansicht Nickles

Hallo, hab ein C-Programm mit dem GCC-Compiler geschrieben und es funktioniert. Selbes Programm mit dem QC2 compiliert, auch ohne fehler, aber falsche Ausgabe. Denke dass GCC ja ein C++ Compiler ist und der andere ein reiner Compiler, aber .exe ist doch eigentlich .exe aber amscheinend nicht. Kann mir jemand helfen?


Anbei ein kleiner Auszug, der mir beim GCC das gewünschte bringt und mit dem QC2 was falsches


 sprintf(schreibe,"S308%08lX%06lX",Adress,SerialNumber); //in Form -om als String in schreibe gespeichert
 //aufspalten des Strings in 2er hex Zahlen(zur pruefsummenberechnung):
 for (i=0; i<=8;i++) {
  sscanf(schreibe+i*2,"%2X",&aufspaltung[i]);
  }
 //summieren der hexzahlen(i=1, da S3 nicht mitberechnet):
 for(i=1;i<=8;i++) {
  pruefsumme+=aufspaltung[i];
  }
 // Umwandlung in einen String zum Verändern(nur letzten 2 Stellen sollen angezeigt werden):
 sprintf(pruefende,"%016X", 0XFF - pruefsumme); //geraetespezifisch von FF abgezogen
 //trennen des Strings in 2er hex Zahlen(die letzte ist entscheident):
 for (i=0; i<=7;i++) {
  sscanf(pruefende+i*2,"%2X",&trenne[i]);
  }
 if(Darstellung==2){
 //schreiben der Hexnummern in Form -oi(123456->563412):
 fprintf(fp,"S308%08X%02X%02X%02X",Adress,aufspaltung[8],aufspaltung[7],aufspaltung[6]);}

bei Antwort benachrichtigen
Nobody666 mr.escape „Das erste sprinf und die ersten zwei for schleifen würde ich durch: for i 0,...“
Optionen

Danke, probier ich gleich mal aus.
Hab schon Bücher gewälzt, kapier aber einfach nicht, was du mit dem
Adress>>(i*8)&0xff machst, bzw was das genau bedeutet. Kannst du mir das bitte erklären?

bei Antwort benachrichtigen