Ich bin kürzlich auf einen interessanten Teil der C-Sprache gestoßen, der unterstreicht, wie unterschiedlich Computer waren, als C zum ersten Mal erstellt wurde. Insbesondere erlaubt C die Verwendung von Digraphen (zwei Buchstabenkombinationen, die einen einzelnen Buchstaben darstellen) wie <% und %> als Alternativen zu { und } und <: und :> als Ersatz für [ und ]. Der Zweck bestand darin, eine alternative Syntax zur Unterstützung von Tastaturen und Zeichensätzen bereitzustellen, bei denen keine Klammern und Klammern verfügbar waren. Im Gnu C Language-Handbuch werden diese Digraphen sowie %: als Alternative zu # erwähnt. Da dem Internet nichts mehr vertraut werden kann, habe ich ein einfaches Programm geschrieben und es kompiliert, um die Behauptungen zu überprüfen.
#include <stdio.h> int main() <% printf("Hello, World!\n"); int array<:5:> = <%1, 2, 3, 4, 5%>; for (int i = 0; i < 5; i++) <% printf("%d\n", array<:i:>); %> return 0; %>
Und siehe da (glauben Sie mir nicht) es hat funktioniert! Auch wenn es heutzutage schwer ist, sich eine Tastatur ohne diese Symbole vorzustellen, und ich hier möglicherweise meine Unkenntnis über internationale Tastaturen zeige, bin ich froh, dass jemand daran gedacht hat, diese Alternativen einzubeziehen.
Aber wenn man sich an der CPP-Referenz orientieren kann, gibt es eine Erwartung, dass alle Tastaturen über ?,< verfügen müssen. und ), da es eine noch ausführlichere Version dieses Verhaltens in Form von Trigraphen gibt, die eine Alternative mit drei Zeichenfolgen anstelle von zwei ermöglichen. Beispiele hierfür sind ???< for { und ??) for ], aber es gibt noch viele weitere, die in der CPP-Referenz eingesehen werden können. Während Tripgrahs in C23 scheinbar verschwinden, habe ich keinen Zweifel daran, dass Menschen diese ebenso wie Digraphen in Code-Verschleierungswettbewerben missbraucht haben.
Hallo? Mein Name ist Diego Crespo und ich spreche gerne über Technologie, Nischenprogrammiersprachen und KI. Ich habe Twitter, Mastodon und Threads, wenn Sie mir auf anderen Social-Media-Plattformen folgen möchten. Wenn Ihnen der Artikel gefallen hat, sollten Sie einen Blick auf meinen Substack werfen. Und wenn Sie es nicht getan haben, schauen Sie sich doch einen weiteren Artikel von mir an, der unten aufgeführt ist! Vielen Dank, dass Sie es gelesen haben und mir ein wenig von Ihrer wertvollen Zeit geschenkt haben. A.M.D.G
Das obige ist der detaillierte Inhalt vonCodierung ohne geschweifte Klammern: Eine alternative C-Syntax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!