Ich möchte eine Funktion in c erstellen, die alle 8 Inkremente (um genau zu sein, wenn eine ganze Zahl den Wert 8 hält) einen Absatz/eine neue Zeile (und druckt auch einen Offset)).Create Funktion: Alle 8 Inkremente = ein Absatz
void check_newline(int row){
row++;
if(row==8){
offset = offset + 8;
row= 0;
printf("\n%06X", offset);
}
}
:
In diesem Fall habe ich möchte ein Array bekam ich
for (int i = 0; i < sizeof(myarray); i++){
printf(" %02hhX", myarray[i]);
}
Nun meine Funktion wie diese
int row = 0;
for (int i = 0; i < sizeof(myarray); i++){
printf(" %02hhX", myarray[i]);
check_newline(row);
}
Die Funktion 'check_newline
' diese Struktur implementieren
Immer wenn die Ganzzahl 'row' den Wert 8 erreicht, wird ein neuer Offset gedruckt und der Wert von 'Zeile' wird auf 0 zurückgesetzt.
Jetzt weiß ich nicht, wie man die return
; und mit diesem Code, sieht meine Ausgabe wie diese
000008 E0 60 66 64 38 7D E0 60 66 64 38 7D 80000008 80 00 FF FF FF FF FF FF 000010 E0 60 66 64 38 7D E0 60 66 64 38 7D 80000010 80 00 FF FF FF FF FF FF
(totaly falsch)
Wenn ich die Funktion in meinem Code zu setzen "(so basicaly verwendet keine Funktion), alles ist schön, wegen der fehlenden return-Anweisung.
for (int i = 0; i < sizeof(myarray); i++){
printf(" %02hhX", myarray[i]);
row++;
if(row==8){
offset = offset + 8;
row= 0;
printf("\n%06X", offset);
}
000000 80 00 FF FF FF FF FF FF
000008 E0 60 66 64 38 7D E0 60
Ich habe diese Art von Berechnung in meinem Code oft zu verwenden, also eine Funktion mehr glatt sein.
Funktionsargumente werden * durch Wert * übergeben, Sie haben eine * lokale Kopie * Ihrer 'Zeile' in Ihrer Funktion. Tatsächlich * muss * ein Duplikat sein ... (aber ich kann gerade kein passendes finden) –
Bitte den Code einrücken. –
Mögliches Duplikat von [Übergeben in C] (https://stackoverflow.com/questions/2229498/passing-by-reference-in-c) –