Funktion, die Kommentare aus Code entfernt - Codestil in Ordnung?
-
Du könntest noch ein const für s spendieren.
*(t++) = *(s++);
schreibt man auch kürzer
*t++ = *s++;
Ob die Array oder Zeigervariante "besser" ist, ist Geschmackssache.
-
@ DirkB
Du hast recht, diesen Fall habe ich wirklich vergessen. Thx für den Link.@ Wutz
Ja, da gehört wirklich ein const hin. Ich hatte die Operator Precedences falsch im Kopf, danke für den Hinweis.Thx für eure Rückmeldungen!
-
Bez. Style, ich würde lieber
void remove_comments_1(const char * s, const char *t) ... uint32_t i = 0,// ist doch unsigned! j = 0;
aber dann als Array zugreifen.
Bez. Methode, den Algo ist schrott. Zerleg die Aufgabe auf:
- // Kommentare markieren
- // Kommentare entfernen. Dabei kannst du die Daten mit Blöcke
kopieren mit memcpy oder irgendwas und nicht bitweise was ist voll schrott. - /* Kommentare markieren , dabei kannste checken ob es keine Fehler geben
- /* Kommentare entfernen
Die Länge von t ist am Anfang unklar, aber du machst keine Allocationen in
der Methode. Wenn du länge t gleich länge von s hast und viele Kommentare hast,haste: "string\0 .......... X kb platz verschwendet"
Ales Klar?Schönen Zeitpunkt.
-
Die Frage als solche ist unsinninig!
Jeder Anfänger lernt, zur besseren Lesbarkeit des Source-Codes Kommentare einzufügen. Wozu diese dann entfernen wollen?
-
berniebutt schrieb:
Die Frage als solche ist unsinninig!
Jeder Anfänger lernt, zur besseren Lesbarkeit des Source-Codes Kommentare einzufügen. Wozu diese dann entfernen wollen?
das ist eine übungsaufgabe
-
berniebutt schrieb:
Die Frage als solche ist unsinninig!
Jeder Anfänger lernt, zur besseren Lesbarkeit des Source-Codes Kommentare einzufügen. Wozu diese dann entfernen wollen?
Zum Beispiel, um einen C-Präprozessor zu schreiben.
-
Ein Compiler entfernt die Kommentare bei der lexikalischen Analyse, das ganze ist also nicht nur eine theoretische Übung, da Compiler ja auch mal irgendwann geschrieben werden müssen. Natürlich nicht von berniebutt.
-
Bashar schrieb:
Ein Compiler entfernt die Kommentare bei der lexikalischen Analyse, das ganze ist also nicht nur eine theoretische Übung, da Compiler ja auch mal irgendwann geschrieben werden müssen. Natürlich nicht von berniebutt.
Sonnst hätte man die Kommentare auch noch in der Binarie
-
lesen will gelernt sein schrieb:
das ist eine übungsaufgabe
Und man kann sie gleich auf die eigenen Programme anwenden.
Da braucht man nicht erst Testdaten erstellen.
-
sadop schrieb:
Sonnst hätte man die Kommentare auch noch in der Binarie
So witzig ist das gar nicht. Bei manchen "Compilern" im weitesten Sinne wie vielleicht Refaktorisierungs-, Navigations- oder Dokumentationstools muss der Code geparst und verstanden werden und dabei die Kommentare intakt bleiben. Ein Compiler im engeren Sinne hats da schön einfach, der schmeißt sie sobald möglich raus.
-
Schreibk kein Flood hier bitte.
Ja noch eine Sache mit Strings die es komplitierter machen, z.B. ein String
printf(" blabla\" /* dies soll nicht entfernt werden! \" */... ");
So könnte es aush stehen also Vorsicht!
Ja und wenn deine Mehtode vertig ist, schreib hier, ich werde es benötigen weil ich einen Obfuscator/Deobfuscator schreibe
-
o4kareg schrieb:
Schreibk kein Flood hier bitte.
Ja noch eine Sache mit Strings die es komplitierter machen, z.B. ein String
printf(" blabla\" /* dies soll nicht entfernt werden! \" */... ");
So könnte es aush stehen also Vorsicht!
Ja und wenn deine Mehtode vertig ist, schreib hier, ich werde es benötigen weil ich einen Obfuscator/Deobfuscator schreibeDann doch aber bitte nur beim C-Code und nicht beim deutschen Text.