10 Möglichkeiten zum Anpassen von Code:: Blöcke

10 Möglichkeiten zum Anpassen von Code:: Blöcke - Dummies

Code:: Blocks enthält Standardeinstellungen, die für die meisten C ++ - Anwendungen am natürlichsten sind. Wenn Sie jedoch immer mehr Zeit in der Umgebung verbringen, können Sie feststellen, dass Code:: Blocks mit nur wenigen Optimierungen ein freundlicherer Ort sein kann.

Verwenden Sie das Tabulatorzeichen

Oder genauer gesagt, verwenden Sie kein Tabulatorzeichen. Diese Einstellung macht keinen Unterschied, wenn Sie an einem Projekt arbeiten, bei dem jeder immer Code:: Blocks verwendet. Das Problem mit Tab-Zeichen ist jedoch, dass verschiedene Editoren Registerkarten unterschiedlich interpretieren. Einige Editoren bewegen den Cursor zum nächsten Tabulator, einige Editoren bewegen den Cursor über eine bestimmte Anzahl von Zeichen, und nicht alle Editoren vereinbaren, wie viele Zeichen einem Tab zugeordnet werden sollen. Glücklicherweise interpretieren alle Editoren Räume gleich, so dass es viel sicherer ist, dem Code:: Blocks-Editor mitzuteilen, immer Leerzeichen zu verwenden und niemals Tabulatoren in den Quelldateien zu speichern. Wählen Sie dazu Einstellungen → Editor. Wählen Sie nun auf der linken Seite Allgemeine Einstellungen und vergewissern Sie sich, dass die Option "TAB-Zeichen verwenden" deaktiviert ist.

Syntax-Hervorhebung

Die Syntax-Hervorhebung ändert die Farben verschiedener Strukturtypen, wobei eine Farbe für Schlüsselwörter, eine andere Farbe für Variablennamen, eine dritte für Zeichenketten usw. verwendet werden. Dies ist sehr hilfreich, um beim Tippen fehlerhafte Fehler zu vermeiden. Wenn Sie beispielsweise ein Keyword falsch schreiben, wird es nicht in der Keyword-Farbe angezeigt. Um diese Funktion zu aktivieren, wählen Sie Einstellungen → Editor → Syntaxhervorhebung. Normalerweise Code:: Blöcke können die Sprache von der Dateinamenerweiterung unterscheiden. Wenn Sie eine nicht standardmäßige Dateierweiterung verwenden, stellen Sie sicher, dass Sie sie zur Liste hinzufügen, indem Sie Filemasks auswählen. Darüber hinaus können Sie die Optionen für die Syntaxhervorhebung in diesem Fenster anpassen, um sie besser an Ihre Anforderungen anzupassen. Dies ist besonders wichtig, wenn Sie irgendeine Form von Sehproblemen haben, insbesondere jede Form von Farbenblindheit.

Quellcodeformatierer

Das mag altmodisch sein, aber ein guter Programmierer sollte ein wenig stolz auf das Aussehen seines Codes sein. Dies erfordert die Erstellung und ständige Einhaltung eines Codierungsstandards. Noch mehr als das, wenn man in einem großen Team arbeitet, sollte jeder den gleichen Codierungsstandard verwenden. Ansonsten sieht der Code chaotisch aus, da Module, die von einer Person geschrieben wurden, einen Look and Feel haben, während die von einem Teamkollegen geschriebenen ein anderes Aussehen haben - sehr unprofessionell.

Das Erzwingen der Einhaltung eines Codierungsformatierungsstandards ist in Code:: Blocks einfach. Der Code-Editor formatiert Ihren Code so um, dass er zu jedem gewünschten Standard passt.

Der Quellcodeformatierer Code:: Blocks passt Variablennamen nicht an. Schlimmer noch, es wird Ihre Programmlogik nicht berühren. Wenn du also miesen Code schreibst, schiebe es nicht dem Code:: Blocks Editor.

Wählen Sie Einstellungen → Editor und dann Quellformatierer aus der angezeigten Liste, um ein Fenster zu erhalten, das wie in Abbildung 1 aussieht. Das Vorschaufenster zeigt Ihnen, wie Ihre Auswahl in der Praxis aussehen wird. Dieses Beispiel folgt dem ANSI-Standard, aber Sie können unter vielen anderen gängigen Standards auswählen, oder Sie können Benutzerdefiniert auswählen und dann auf die Registerkarten Einzug und Formatierung klicken, um einen eigenen Standard zu erstellen.

Abbildung 1: Das Einrichten des Quellcode-Formatierungsprogramms kann Ihnen helfen, einen Codierungsstil einheitlich anzuwenden.

Sobald Sie einen Standard ausgewählt haben, versucht der Editor, Sie zur Verwendung dieses Standards zu überreden. Wenn Sie z. B. eingeben, wenn (true) und dann die Eingabetaste drücken, setzt der Editor den Cursor an die eingerückte Stelle unterhalb von , wenn . Wenn Sie dann eine offene Klammer eingeben, wird der Editor Sie unterstützen, platzieren Sie die Klammer in Übereinstimmung mit dem i in , wenn , in die nächste Zeile springen, und einrücken.

Noch besser ist, wenn Sie die Codierung abgeschlossen haben, wenn Sie Plugin → Quellcode-Formatierer (AStyle) auswählen, durchläuft der Editor Ihr Modul und wendet den aktuellen Quellcode-Standard erneut an. Also, wenn Ihr Arbeitskollege nicht ganz so vorsichtig mit seiner Programmierung war, wie Sie waren, machen Sie sich keine Sorgen - ein paar Mausklicks und alles ist aufgeräumt.

Code-Abkürzungen

Dies ist eine seltsame Option. Wenn Sie viel Code schreiben (lesen Sie: viel ! ), können Code-Abkürzungen Zeit sparen, besonders wenn Sie keine gute Schreibkraft sind. Mit Code-Abkürzungen können Sie ein Codewort eingeben und dann Strg + J drücken, und voila, der Code:: Blocks-Editor gibt die entsprechende vordefinierte Vorlage ein, die Sie dann ausfüllen.

Wenn Sie z. B. eingeben > class in der Kopie von Code:: Blocks und dann Strg + J eingeben, Code:: Blocks würde Sie zuerst nach dem Namen Ihrer Klasse fragen und dann würde sie alle in Abbildung 2 gezeigten Dinge ausfüllen. < Abbildung 2: Die Verwendung der Quellcode-Abkürzung kann Ihnen viel Zeit sparen, wenn Sie daran denken können, sie zu verwenden! Code:: Blocks enthält bereits einen Satz von Abkürzungen, Sie können jedoch alle gewünschten Abkürzungen hinzufügen, indem Sie Einstellungen → Editor auswählen und dann die Option Abkürzungen auf der linken Seite des Fensters auswählen.

Das Gute an der Code-Abkürzung ist, dass sie viel Tipparbeit erspart und automatisch den von Ihnen gewählten Quellcode-Formatierungsstandard erzwingt. Sehr schnelle Typist (oder wäre das Keyboarder?) Kann nicht viel aus dieser Funktion, aber wenn Sie nicht alle zehn Finger verwenden, wenn Sie eingeben oder sonst nur langsam auf der Tastatur sind, möchten Sie wahrscheinlich versuchen, dies zu verwenden Feature.

AutoVervollständigen

Code:: Blöcke hat diese coole Funktion namens AutoVervollständigen. Nachdem Sie eine Mindestanzahl von Buchstaben eingegeben haben (die Standardeinstellung ist vier, aber Sie ändern dies), suchen Sie bei der Eingabe von Code:: Blocks nach allen Dingen, die mit diesen Buchstaben beginnen.Auf diese Weise kann Code:: Blocks voraussehen, was Sie zu sagen versuchen.

Zum Beispiel im Budget5-Programm, das mit dem herunterladbaren Material von Dummies geliefert wird. com, wenn Sie

Acco

eingeben und dann nur eine halbe Sekunde anhalten (das ist nicht sehr lang!), öffnet sich ein Fenster wie in Abbildung 3, das die einzigen zwei Dinge bietet, die Code:: Blocks kennt. Dieses Programm, das mit Acco beginnt: die Klasse Konto und das Typedef AccountPtr . Da Sie Konto , meinten, drücken Sie einfach die Eingabetaste, um es für mich auszufüllen. Abbildung 3: Code:: Blocks findet nur zwei Übereinstimmungen für Acco in diesem Programm. Der erste ist das, was ich gesucht habe. In diesem Beispiel erstellen Sie einen Zeiger auf ein

-Konto

mit der Bezeichnung pAcc . Wenn Sie als nächstes pAcc -> eingeben und dann pausieren, öffnet Code:: Blocks ein Fenster mit den öffentlichen Mitgliedern von Konto , wie in Abbildung 4 dargestellt. Abbildung 4: Bei einem gegebenen Objekt findet Code:: Blocks die öffentlichen Member, auf die von diesem Objekt aus zugegriffen werden kann. Dies ist eine interessante Funktion, wenn Sie sich auf Ihre eigenen Klassen beziehen. Mehr als alles andere bedeutet die Auswahl aus der Liste, dass Sie den Funktionsnamen nicht falsch oder falsch geschrieben eingeben.

Diese Funktion wird wirklich interessant, wenn Sie ein Objekt eingeben, das in einer Bibliothek definiert ist. Zum Beispiel, wenn Sie

cout eingeben.

, erhalten Sie eine Liste der öffentlichen Mitglieder, die für das Objekt cout verfügbar sind. Dies kann sehr hilfreich sein, wenn Sie keine Dokumentation haben oder einfach nicht wissen, wo Sie anfangen sollen. Alle Warnungen aktivieren Die Aktivierung aller Warnungen ist ein Kinderspiel. Fehler, die zur Kompilierzeit auftauchen, sind viel leichter zu finden (duh!) Und zu beheben als die, die Sie zur Laufzeit selbst suchen müssen. Deshalb ist die C ++ - Syntax so wählerisch - sie will sicherstellen, dass Sie genau das codiert haben, was Sie beabsichtigt haben, bevor sie losgeht, und eine ausführbare Datei erstellen, die etwas völlig anderes macht.

Es gibt jedoch ein paar Dinge, (eigentlich einige Dinge), die der GNU C ++ - Compiler reparieren und ohne Kommentar fortsetzen kann, wenn Sie es wollen. Es ist zum Beispiel kein Fehler, eine Variable in einer Funktion zu definieren und sie dann nie zu verwenden. Oder um eine Rückkehr in die Mitte einer Funktion zu setzen, damit die Codezeilen nach der Rückkehr nicht ausgeführt werden können. Das sind keine Fehler, aber für einen misstrauischen Compiler sehen sie sehr merkwürdig aus.

Der GNU-Compiler generiert eine Warnung, wenn er einen dieser beiden Fälle oder eines von Dutzenden anderer verdächtiger Konstrukte in Ihrem Code sieht. Sie sollten jede Warnung durchgehen, um sicherzustellen, dass Sie verstehen, worüber sich der Compiler beschwert und warum. Versuchen Sie, das Problem zu beheben, wenn Sie es auch verstehen können, selbst wenn Sie sich entscheiden, es nicht zu beheben.

Warnungen werden viele Fehler aufdecken, die in Ihren Programmen zu Fehlern werden.

Neues Build-Ziel erstellen

In der Umgebung von Code:: Blocks können Sie mehr als ein Build-Ziel erstellen. Ein Build-Ziel ermöglicht es Ihnen, eine separate ausführbare Datei mit eindeutigen Build-Einstellungen zu erstellen.Zum Beispiel möchten Sie auf jeden Fall Symbolinformationen in die ausführbare Datei einschließen, die Sie für das Debuggen verwenden, aber nicht in diejenige, die Sie an die Kunden versenden möchten (für mehr Informationen siehe unten).

Sie können am einfachsten ein Debug-Build-Ziel und ein Release-Build-Ziel erstellen, wenn Sie das Projekt erstellen - lassen Sie den Assistenten die ganze Arbeit für Sie erledigen. Es kommt jedoch sehr oft vor, dass Sie nach Wochen, in denen Sie an einem Projekt arbeiten und es debuggen, es nur veröffentlichen, um festzustellen, dass es kein Release-Build-Ziel gibt. Keine Sorge, Sie können immer ein neues Build-Ziel erstellen.

Um ein neues Build-Ziel zu erstellen, wählen Sie Projekt → Eigenschaften und dann die Registerkarte Build Targets. Sie sehen etwas, das aussieht wie in Abbildung 5, das das Budget5-Programm mit einem einzelnen Debug-Build-Ziel zeigt.

Abbildung 5: Eine der Projekteigenschaften ist die Liste der Buildziele.

Führen Sie die folgenden Schritte aus, um ein Freigabe-Build-Ziel zu erstellen:

Wählen Sie das Debug-Ziel aus und klicken Sie auf Duplizieren.

Geben Sie den Namen des neuen Build-Ziels ein, Release.

  1. Ändern Sie den Namen der Ausgabedatei in binReleaseBudget5. exe und das Ausgabeverzeichnis der Objekte zu objRelease.

  2. Klicken Sie auf Build-Optionen, um festzulegen, welche Build-Optionen für dieses Ziel ausgewählt werden sollen, und klicken Sie auf OK.

  3. Sie möchten auf jeden Fall die Symbolinformationen ausschalten und die Optimierung aktivieren.

  4. Klicken Sie auf OK, um das neue Build-Ziel zu speichern.

    Um ein bestimmtes Build-Ziel zu erstellen, wählen Sie Build → Select Target und wählen Sie dann aus den verfügbaren Zielen aus. Dies leitet Code:: Blockiert, welche ausführbare Datei erstellt werden soll, wenn Sie Build auswählen.

  5. Projekt - Optimierungen aktivieren

Sie könnten denken, dass jede Zeile von C ++ - Code eine Reihe von Maschinenbefehlen ohne Rücksicht auf die Codezeilen um sie herum generiert, und im nicht optimierten Modus hätten Sie recht. Der in den GNU-Compiler integrierte Optimierer kann aus Ihrer C ++ - Quelle ein effizienteres Programm generieren, indem er mehrere Codezeilen durchsucht.

Betrachten Sie das folgende triviale und vollständig erfundene (aber schlaue) Beispiel:

// i ++; MOV EAX, i [BP] INC EAX MOV i [BP], EAX // fn (i) MOV EAX, i [BP] PUSH EAX CALL FN

Hier wurde die Zeile

 i ++ 

in die drei Zeilen des folgenden Maschinencodes: Laden Sie den Wert von i

  1. in das EAX-Register. Erhöhen Sie das EAX-Register. Speichern Sie den inkrementierten Wert zurück in

  2. i

  3. . Die nächste Zeile konvertiert den Aufruf fn (i)

    in das Folgende. Laden Sie den Wert von i

  4. in das EAX-Register. Schiebe den Wert von EAX auf den Stapel. Rufen Sie den Anruf an.

  5. Beachten Sie, dass Schritt 4 eigentlich unnötig ist. Der Wert von

  6. i

muss nicht in das EAX-Register geladen werden, da der Wert bereits aus den Schritten 1, 2 und 3 vorhanden ist. Sogar ein mittelmäßiger Optimierer würde diese Tatsache bemerken und nicht die zweite generieren. MOV EAX, ich [BP] . Dies ist keine große Ersparnis, aber dieses Beispiel ist leicht zu verstehen, auch wenn es keine so große Verbesserung ist. Um die meisten Optimierungen des GNU-Compilers zu verstehen, müssten Sie in der Assemblersprache ein echter Volltreffer sein. Sie können Optimierungen für einen bestimmten Build aktivieren, indem Sie Projekt → Build-Optionen auswählen, dann links den Release-Build auswählen und eine der Optimierungsoptionen auswählen.

Technisch gibt es mehrere Optimierungsmöglichkeiten, da der Optimierer viel Zeit in Anspruch nehmen kann. Wenn Sie ein sehr großes Projekt haben, ist es nicht sinnvoll, viel Zeit damit zu verbringen, ein Modul zu optimieren, das nicht sehr oft ausgeführt wird. Für kleine bis mittelgroße Projekte aktivieren Sie einfach die vollständige Optimierung - Sie werden die zusätzlichen Sekunden, die für die Kompilierung benötigt werden, nicht bemerken.

Sie können diese Option für alle Builds aktivieren, indem Sie Einstellungen → Compiler auswählen, dann die Registerkarte Compiler auswählen und einen der Fälle optimieren auswählen. Das ist jedoch keine so gute Idee. Aktivieren Sie die Optimierung nicht in der Debug-Version des Projekts, wenn Sie den Debugger verwenden möchten. Die Änderungen an dem Code, den das Optimierungsprogramm durchführt, lassen das Programm scheinbar in einem halb-zufälligen Schritt herumspringen, wenn Sie versuchen, es zu durchlaufen.

Projekt - Deaktivieren der Debugger-Symbole

Symbolinformationen sind in der ausführbaren Datei nur für die Verwendung des Debuggers enthalten. Diese Informationen sollten nicht in der Version enthalten sein, die Sie an Benutzer ausliefern: Sie erhöht die Größe der ausführbaren Datei unnötig und, noch schlimmer, gibt sie gefährliche Informationen an Hacker weiter, wenn Sie versuchen, eine Schwachstelle in Ihrem Programm zu finden.

Um die Debug-Informationen im Release-Erstellungsziel zu deaktivieren, wählen Sie Projekt → Build-Optionen und dann das Freigabeziel auf der linken Seite. Vergewissern Sie sich jetzt, dass die Option Debugging-Symbole erzeugen [-g] für das Freigabeziel angeklickt ist. (Jetzt ist ein guter Zeitpunkt, um sicherzustellen, dass dieselbe Option für das Debug-Erstellungsziel angeklickt wird.)

Projekt - Festlegen der Argumente eines Programms

Einige Programme sollten mit Befehlszeilenargumenten ausgeführt werden. Code:: Blocks bietet den folgenden Mechanismus zum Bereitstellen von Befehlszeilenargumenten bei der Ausführung eines solchen Programms innerhalb der Umgebung Code:: Blocks:

Wählen Sie Projekt → Argumente für Programme festlegen aus.

Wählen Sie das Build-Ziel im oberen Fenster aus.

  1. Geben Sie im Fenster "Programmargumente" ein, was Sie möchten.

  2. Wählen Sie OK, um das Fenster zu schließen.

  3. Wenn Sie Start oder Ausführen eingeben, liefert Code:: Blocks diese Argumente an Ihr Programm.