Wochenendprojekt: Mit C spielerisch Spaß haben
- Die Sprache C ist einfach und zugleich mächtig, sodass sich problemlos ganze Betriebssysteme damit schreiben lassen
- Die knappe Syntax von C hat viele nachfolgende Sprachen wie Java und Go beeinflusst
- Sie hat auch zum Aufkommen der Kunst der Code-Verschleierung beigetragen
IOCCC-Wettbewerb
- Der IOCCC-Wettbewerb ist ein repräsentatives Beispiel für Code-Verschleierung
- Wettbewerbsbeiträge verwenden oft verwirrende Präprozessor-Makros, unlogische Formatierung und wenig hilfreiche Variablennamen
- Solcher Code ist schwer zu lesen, aber C kann zugleich gut lesbar und verwirrend sein
switch-Anweisung
- Die
switch-Anweisung benötigt wie if oder for nicht zwingend geschweifte Klammern
- Ohne geschweifte Klammern kann sie nur eine einzige Anweisung enthalten
- Die
switch-Anweisung ist im Grunde ein glorifiziertes goto
- Variableninitialisierungen innerhalb einer
switch-Anweisung können unerwartetes Verhalten auslösen
case-Labels
case-Labels müssen nicht auf der obersten Ebene eines switch-Blocks stehen
- Sie lassen sich zusammen mit einer Bedingung wie
if (0) verwenden
- Sie können auch ohne
break funktionieren
Kombination aus else und if
- Mit
else und if lässt sich eine switch-Anweisung ersetzen
- Auch ohne geschweifte Klammern können mehrere Bedingungen verarbeitet werden
GNU-Erweiterungen
- Mit dem
&&-Operator lässt sich die Adresse eines Labels ermitteln und per goto anspringen
- Damit kann eine
switch-Anweisung ersetzt werden
Ersatz für for
- Schleifen lassen sich mithilfe von Labels innerhalb einer Variablendeklaration implementieren
- Das ist zwar GCC-spezifisch, zeigt aber, wie originell und verwirrend sich auch in C Code schreiben lässt
Fazit
- C bietet die Möglichkeit, sehr originellen und verwirrenden Code zu schreiben
- Solcher Code ist schwer zu lesen, zeigt aber die Stärke der Sprache C
Meinung von GN⁺
- Dieser Artikel zeigt die Originalität und Komplexität der Sprache C sehr gut
- Er ist nützlich, um die vielfältigen Einsatzmöglichkeiten von C zu erkunden
- Auch die künstlerische Seite von Code-Verschleierung ist interessant
- Die Beispiele mit GNU-Erweiterungen sind sehr ungewöhnlich und kreativ
- Für Einsteiger, die C lernen, könnte das etwas schwierig sein
Noch keine Kommentare.