Base64 Code erklärung
-
Holgi schrieb:
bitte ich euch mir den Code Zeile für Zeile zu erklären.
Okay, dann mach ich mal den Anfang:
Zeile 1: const char b64[] =
Ein Konstanter char-Array namens b64 wird definiert
und initialisiert mit ... (siehe nachfolgende Code-Zeilen-Erklärer)
-
Zeile 2: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
... einem Zeichenkettenliteral.
Wer macht mit der nächsten - trivialen - Zeile weiter?
cheers, Swordfish
-
die nächste zeile ist ein zeilenvorschub, welcher vom compiler als "whitespace" interpretiert und dementsprechend ignoriert wird
edit:
ein wenig hintergrundinformation: http://de.wikipedia.org/wiki/Zeilenvorschub
-
sothis_ schrieb:
die nächste zeile wird in der regel als "whitespace" bezeichnet und wird vom compiler ignoriert
Fast richtig, aber erst die übernächste Zeile ist "whitespace"
Dann biete ich direkt auch die Erklärung zur zweiten Zeile an:
Zeile 2: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
... den Zeichen (in der angegebenen Reihenfolge)
"A", danach
"B", danach
"C", danach
"D", danach
"E", danach
"F", danach
"G", danach
"H", danach
"I", danach
"J", danach
"K", danach
"L", danach
"M", danach
"N", danach
"O", danach
"P", danach
"Q", danach
"R", danach
"S", danach
"T", danach
"U", danach
"V", danach
"W", danach
"X", danach
"Y", danach
"Z", danach
"a", danach
"b", danach
"c", danach
"d", danach
"e", danach
"f", danach
"g", danach
"h", danach
"i", danach
"j", danach
"k", danach
"l", danach
"m", danach
"n", danach
"o", danach
"p", danach
"q", danach
"r", danach
"s", danach
"t", danach
"u", danach
"v", danach
"w", danach
"x", danach
"y", danach
"z", danach
"0", danach
"1", danach
"2", danach
"3", danach
"4", danach
"5", danach
"6", danach
"7", danach
"8", danach
"9", danach
"+", und schließlich
"/"
-
Huch! Swordfish hat die nächste (2.) Zeile ja schon beantwortet.
Dann halte ich mich ab jetzt lieber raus, bevor wir den Fragesteller noch verwirren!
-
Javaner schrieb:
... den Zeichen (in der angegebenen Reihenfolge)
[...]
Swordfish schrieb:
... einem Zeichenkettenliteral.
Warum müsst ihr eine wunderschon begonnene Kette mutwillig zerstören?
cheers, Swordfish
-
in der dritten zeile steht nix drinn...
so nächster..
-
in der 4. zeile steht
char ascii[256] =
-
erklärer schrieb:
in der 4. zeile steht
char ascii[256] =
Das ist aber keine Erklärung!
-
So, nun aber bitte etwas mehr Disziplin...
Zeile 3:
Nur Whitespaces.
Zeile 4: char ascii[256] =
Ein
char
Array "ascii" mit 256 Feldern wird definiert und initialisiert mit ...cheers, Swordfish
-
Swordfish schrieb:
Zeile 3:
Nur Whitespaces.
Das ist aber keine Erklärung!
-
Zeile 5: {
eine öffnende geschweifte Klammer, die die folgenden Zahlen zu einem Array zusammenfasst...
-
Zeile 23:
Nur Whitespaces.
-
Zeile 52:
Nur Whitespaces.
-
Zeile 27: int i;
Deklaration der lokalen int-Variablen i
-
Zeile 59:
Nur Whitespaces.
Zeile 61:
Nur Whitespaces.
-
Zeile 53: void
Beginn der Definition einer Funktion die void (also nichts) zurückliefert
-
Zeile 24: void
Beginn der Definition einer Funktion die void (also nichts) zurückliefert
-
Zeile 22: };
Schließende geschleifte Klammer mit der der zuvor geschriebene
Zahlen-Array beendet wird.
-
Zeile 51: };
Schließende geschleifte Klammer mit der die Funktion base64_in beendet wird.
Zeile 80: };
Schließende geschleifte Klammer mit der die Funktion base64_out beendet wird.