Die Fallstricke des Makromissbrauchs in der realen Programmierung
Makros und Präprozessoren spielen eine wichtige Rolle in der C-Programmierung und bieten die Möglichkeit um Textersetzungen zu definieren und Codegenerierung durchzuführen. Ihr übermäßiger Einsatz kann jedoch zu zahlreichen Herausforderungen führen, wie ein Beispiel aus der Praxis zeigt, das den schlimmsten Makromissbrauch veranschaulicht.
Stellen Sie sich ein Szenario vor, in dem ein Programmierer von einem unermüdlichen Streben nach Byte-Optimierung angetrieben wird Aufgrund früherer Erfahrungen mit speicherbeschränkten Systemen griffen wir auf einen unkonventionellen Ansatz zurück. Diese Person hat ein Makro mit dem Namen RETURN wie folgt definiert:
#define RETURN(result) return (result);}
Dieses Makro wurde dann verwendet, um mehrere Funktionen ohne schließende Klammern zu definieren, was zu a führte Codebasis, die so aussah:
int myfunction1(args) { int x = 0; // do something RETURN(x) int myfunction2(args) { int y = 0; // do something RETURN(y) int myfunction3(args) { int z = 0; // do something RETURN(z) }
Dieser extreme Makromissbrauch beeinträchtigte die Syntaxhervorhebung erheblich und machte es unmöglich, visuell zwischen Funktionen und Codeblöcken zu unterscheiden. Die Rechtfertigung des Programmierers für diesen Ansatz beruhte auf einer tief verwurzelten Denkweise, die er bei der Arbeit mit Assembler entwickelt hatte, bei der die Byte-Erhaltung an erster Stelle stand.
Andere Exzentrizitäten, die mit dieser Person in Verbindung gebracht wurden, verdeutlichten zusätzlich die möglichen Folgen extremer Programmierpraktiken. Ein konvexer Spiegel, der strategisch über dem Monitor positioniert war, diente als rudimentäres Überwachungssystem zur Erkennung der Anwesenheit von Zuschauern. Darüber hinaus wurde das plötzliche Verlassen des Stuhls, gefolgt von einem schnellen Satz Liegestütze, als eine Form der Selbstbestrafung verwendet, wenn der Compiler Fehler im Code entdeckte.
Dieses Beispiel dient als warnendes Beispiel für die Gefahren übermäßigen Verhaltens Makromissbrauch. Während Makros in bestimmten Szenarien bestimmte Vorteile bieten können, kann ihre wahllose Verwendung zu Codebasen führen, die schwer zu lesen, zu warten und zu debuggen sind.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3