Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]


Referenz - ASSERT

Referenz-Navigation

 

Syntax: ASSERT (Ausdruck)
Kategorie: Programmorganisation
Typ: Makro-Anweisung

Das ASSERT-Macro wurde zum Debugging entwickelt und funktioniert nur, wenn der Compiler mit der BefehlsreferenzeintragOption "-g" aufgerufen wird. Ist dies der Fall, wird das Programm beendet, sobald 'Ausdruck' gleich null ist. Zusätzlich wird eine Zeile ausgegeben:

DATEINAME(ZEILENNNUMMER): assertion failed at PROZEDUR:AUSDRUCK

Wenn die Option "-g" nicht an fbc übergeben wird, erzeugt dieses Makro keinen Code; das Programm wird nicht beendet, wenn der Ausdruck gleich null wird.

Beispiel:

Declare Sub foo()

Sub foo()
    Dim a As Integer = 10

    For i As Integer = 1 To 20
        a -= 1
        Assert (a <> 0)
        Print a
    Next
End Sub

foo()

Sub Quit Destructor
    Sleep
End Sub

Wenn -g an den Compiler übergeben wird, wird das Programm mit dieser Meldung beendet:

test.bas(8): assertion failed at FOO: a <> 0

Die BefehlsreferenzeintragDESTRUCTOR-Sub bewirkt, dass auf einen Tastendruck gewartet wird; so kann die Meldung gelesen werden und verschwindet nicht sofort. Das Beispiel schlägt unter Umständen fehl, wenn Sie es z.B. mit der "Quick Run"-Option in FbEdit aufrufen. Eine fertig kompilierte Debug-EXE wird aber wie erwartet bei 0 anhalten.

Unterschiede zu QB: neu in FreeBASIC

Unterschiede unter den FB-Dialektformen:
In der Dialektform Befehlsreferenzeintrag-lang qb steht ASSERT nicht zur Verfügung und kann nur über __ASSERT aufgerufen werden.

Siehe auch:
BefehlsreferenzeintragASSERTWARN, BefehlsreferenzeintragDer Compiler


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 25.06.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 08.07.2010 von Redakteurnemored gespeichert.
  Versionen Versionen