Assert C ++

Assert C ++
Die C ++ - Sprache hat Assertion -Anweisungen hervorgerufen, mit denen Programmierer die Bedingungen oder Anweisungen überprüfen können, die logischerweise falsch sein können. In diesem heutigen C ++ - Artikel werden wir in unseren Beispielen die Anweisung „Assert“ verwenden, um zu veranschaulichen, dass es sich. Wenn Sie nach Hilfe suchen, um solche Aussagen zu debuggen, haben Sie das Glück, diesen Artikel zu haben. Beginnen wir unseren neuen C ++ - Artikel, indem wir die Shell Console -Anwendung des Ubuntu 20 öffnen.04 System mit der Schlüsselverknüpfung „Strg+Alt+T“.

Sie erstellen eine neue C ++ - Datei in Ihrem Terminal. Dies muss mit der Abfrage „Berührung“ innerhalb der Shell erfolgen. Somit wurde die für diesen Zweck verwendete Abfrage im Bild unten angezeigt.

Jetzt wird die Datei im Home -Datei Explorer des Linux -Systems platziert. Wir müssen diese C ++ - Datei in einem unserer installierten Redakteure öffnen, ich.e., Vim, Text oder Nano. Wir haben also für diesen Zweck den Gnu Nano -Editor gewählt. Der Befehl zum Öffnen dieser neuen Datei ist unten angezeigt.

Beispiel 01

Beginnen wir mit dem allerersten Beispiel für die Verwendung der Assert -Anweisung im C ++ - Code, um die Logik einiger Codeanweisungen zu validieren. Wir haben den Code mit den Header -Dateien gestartet. Das Hinzufügen eines Stream-Headers für Eingabe-Output-Streams ist erforderlich, wenn Sie innerhalb der C ++-Plattform arbeiten. Der Standard -Namespace ist in C ++ ein Muss mit dem Schlüsselwort „Verwenden“ und „std“ darin, wie Sie auch aus dem Bild sehen können. Für den Benutzer der Anweisung „Assert“ müssen wir die Header -Datei von Assert hinzufügen, um sie funktional zu machen. Somit haben wir das „Assert“ hinzugefügt.H ”-Header -Datei mit dem Schlüsselwort" #include ". Die Main () -Methode wurde begonnen, die Ausführung durchzuführen.

Wir haben eine Ganzzahlvariable mit dem Namen "Val" mit einem Wert von 13 initialisiert. In der nächsten Folge wurde das Variable „Val“ mit einem weiteren Wert von 15 außer Kraft gesetzt. Die Assert -Anweisung wurde danach verwendet, um zu überprüfen, ob die Variable „Val“ dem Wert 13 entspricht. Da es logisch falsch ist und das Variable „Val“ mit Wert 15 überschrieben wurde, wird eine Ausnahme ausgelöst. Sparen wir den Code nach Abschluss einer Main () -Funktion mit „Strg+S“. Nach dem Speichern müssen wir zur Zusammenstellung und Ausführungszwecke mit „Strg+x“ zum Terminal zurückkehren, um „Ausführungszwecke“ zu sein.

Für die C ++ - Code Compilation müssen Sie einen Compiler benötigen, der in Ihrem Ubuntu 20 konfiguriert ist.04 System. Daher haben wir den G ++ - Kompilierungsanweis in der Shell verwendet, um die Datei zu kompilieren. „Assert.CC ”. Die Zusammenstellung gibt nichts zurück, was uns im Gegenzug klar macht, dass der Code durchgehend syntaktisch korrekt ist. Lassen Sie uns die Datei einfach mit unserem Everlast ausführen. “./A.OUT ”Befehl in der Konsole. Das Ausführen einer Datei gibt den Fehler als Rückkehr zurück, da die Assert -Anweisung false im Gegenzug zurückgibt. Die Ausgabe wird im im Bild befestigten Bild dargestellt.

Wenn Sie die geltende Fehlerausgabe durch die Assert -Anweisung vermeiden möchten, müssen Sie das Flag No Debugg in Ihrem C ++ - Code definieren. Zu diesem Zweck müssen Sie das Schlüsselwort „definieren“ mit dem Hash -Zeichen und „ndebug“ als Flagge im Kopfzeilenbereich verwenden. Somit haben wir dieselbe Datei geöffnet und den Namespace nach der Header -Datei "IO" hinzugefügt. Nach dem Standard -Namespace haben wir das "Ndebug" -Flag im Header definiert und das "Assert" verwendet.H ”Kopfball danach danach. Stellen Sie sicher, dass Sie die unten gezeigte Abfolge nicht ändern. In der MAIN () -Funktion haben wir die Cout -Anweisung in die Ausgabe hinzugefügt, die die Behinderung durch die Assert erfolgreich war.

Lassen Sie uns diesen aktualisierten Code in der Shell erneut kompilieren und ausführen. Auf diese Weise haben wir diesmal keine Fehler, indem wir den „ndebug“ in unserem Kopfzeilenbereich verwendet haben.

Beispiel 02

Lassen Sie uns ein neues Beispiel für die Verwendung der Assert -Anweisung im C ++ - Code verwenden. Diesmal werden wir die Assert-Anweisung in einer benutzerdefinierten Funktion verwenden. Somit haben wir zu Beginn des Codes in einer Sequenz die Header -Dateien und den Standardnamenspace hinzugefügt. Die benutzerdefinierte Methode mit dem Namen „show ()“ wurde deklariert, wobei der Ganzzahltypzeigerwert in seinem Parameter eingenommen wurde.

Innerhalb der Funktion show () haben wir die Anweisung „Assert“ verwendet, um festzustellen, ob der im Parameter übergebene Zeiger nicht null ist. Wenn es null ist, wird der Fehler geworfen. Die Cout -Anweisung zeigt dann den Wert einer Variablen an, auf die der Zeiger „V“ zeigt. Innerhalb der Hauptfunktion haben wir eine Ganzzahlvariable „Val“ mit einem Wert von 13 initialisiert. Zwei Zeiger „A“ und „B“ wurden in Null initialisiert. Die Adresse der variablen "Val" wurde mit Zeiger "A" gebunden. Die Funktion show () wurde mit dem bestandenen Zeiger „A“ und „B“ getrennt aufgerufen, um verschiedene Ergebnisse auszugeben. Der zweite Aufruf zur Show -Funktion muss eine Ausnahme ausführen. Lassen Sie uns den Code speichern und ausführen.

Nachdem wir diesen Code ausgeführt haben, haben wir das gleiche Ergebnis wie oben diskutiert. Es zeigt Ergebnis 13 für den ersten Funktionsaufruf, i.e., Übergebener Zeiger „A“, während der andere Funktionsaufruf den Fehler zeigt.

Um diesen Fehler zu korrigieren, müssen Sie nur den Zeiger „B“ auch an das Variable „Val“ binden. Daher haben wir dasselbe innerhalb des untergeklagten Codes getan. Wir haben das Variable „Val“ durch V1 ersetzt und eine weitere Variable hinzugefügt, „V2“. Der Variable V1 wurde mit Zeiger "A" gebunden und V2 wurde mit Zeiger "B" gebunden. Das Gesamtskript bleibt das gleiche wie gezeigt.

Nach dem Code -Debuggen und Laufen wurden bisher keine Fehler gefunden. Beide Werte für V1- und V2 -Variablen wurden erfolgreich angezeigt, wie unten gezeigt.

Beispiel 03

Lassen Sie uns mit dem letzten, aber nicht dem geringsten Beispiel einer Assert -Anweisung in C ++ - Code enden. Der Code enthält die beiden Assert -Anweisungen und zwei Cout -Anweisungen. Die erste Anweisung überprüft, ob die Multiplikation in derselben Ausgabe führt. Da die Bedingung logisch korrekt ist, muss sie true zurückgeben, und es wird kein Fehler angezeigt. Die Cout -Anweisung wird ausgeführt, wobei angezeigt wird, dass die erste Anweisung korrekt war. Die andere Anweisung für Assert wird erneut überprüft, ob die Multiplikation auf beiden Seiten die gleiche Ausgabe zurückgibt. Da die Ausgabe nicht gleich wäre, ist er logisch falsch. Daher wird es falsch zurückkehren. Aus diesem Grund tritt der Fehler auf und die Cout -Anweisung wird danach nicht ausgeführt.

Aufgrund des logischen Fehlers endet das Programm automatisch nach der Ausführung des ersten Couts.

Um dieses Problem zu lösen, werden wir das Flag „Ndebug“ im Code verwenden, wie wir es bisher getan haben.

Diesmal wurde kein Fehler angezeigt, und beide Cout -Anweisungen werden ausgeführt.

Abschluss

Im Artikel dreht sich alles um die Verwendung von C ++ Assert -Erklärung. Wir haben unser Bestes ausprobiert, um die Arbeit durch die Main () -Funktion und die benutzerdefinierte Funktion zu demonstrieren. Wir haben auch über den Weg besprochen, die Behauptung in C ++ zu deaktivieren, ich.e., Die Ndebug -Flagge. Wir hoffen, dass alle Beispiele Ihnen immense Hilfe leisten werden.