Win32-Assertionsfunktion und Fehlerfehler bei der Konvertierung in COFF

Die Verwendung von assert

    behaupten, ist ein Makro,
    seine Funktion kann beschrieben werden als:

if (vorausgesetzt es ist wahr)
{Das      Programm läuft normal; } else {       Fehler melden && Programm beenden! (Vermeiden Sie größere Fehler, die durch das Ausführen des Programms verursacht werden.)   }





Der Prototyp des Assert-Makros ist in assert.h definiert. Seine Funktion besteht darin, die Programmausführung zu beenden, wenn seine Bedingung einen Fehler zurückgibt.

void assert (int expression);
Die Funktion von assert besteht darin, den Ausdruck expression jetzt zu berechnen. Wenn sein Wert false (dh 0) ist, wird zuerst eine Fehlermeldung an stderr ausgegeben und das Programm dann durch Aufrufen von abort beendet.

Der Nachteil der Verwendung von assert besteht darin, dass häufige Aufrufe die Leistung des Programms stark beeinträchtigen und den zusätzlichen Overhead erhöhen.
Nach dem Debuggen können Sie den Assert-Aufruf deaktivieren, indem Sie #define NDEBUG vor der # include-Anweisung wie folgt einfügen :
#include 
#define NDEBUG 
#include

 

Erstellen Sie ein neues Win32-Konsolenprogramm und generieren Sie, wenn der folgende Fehler auftritt, LNK1123,

Betten Sie die Liste wie in der folgenden Abbildung gezeigt ein und setzen Sie sie auf Nein.

Wenn assert (1) ist, ist die Operation wie folgt, nichts passiert;

assert (0) lautet wie folgt, eine Fehlermeldung wird gedruckt und ein Dialogfeld mit Abort-Retry-Ignorieren wird angezeigt.

// astdemo.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <assert.h>

int _tmain(int argc, _TCHAR* argv[])
{
	assert(0);

	getchar();
	return 0;
}

 

Ich denke du magst

Origin blog.csdn.net/bcbobo21cn/article/details/113706920
Empfohlen
Rangfolge