Assert
Debugging macro that halts program execution if an expression is evaluated to `0` (false).
Syntax
`
#define Assert(expression) If (expression) = 0 Then : fb_Assert( __FILE__, __LINE__, __FUNCTION__, #expression ) : End If
`
Usage
`
Assert( expression )
`
Parameters
`expression`
Any valid conditional/numeric expression. If `expression` evaluates to `0` (i.e. "false"), execution is halted.
Description
The `Assert` macro is intended for use in debugging and works only if the `-g` option is selected in the FBC command line. In this case it prints an error message and stops the program execution if `expression` evaluates to `0`.
Its normal use is to check the correct value of the variables during debugging.
If `-g` is not passed to fbc, the macro does not generate any code, and has no effect.
Note: If an `Assert` fails while the program is in a graphics `Screen`, the error message will not be visible as it will be printed to the graphics screen, which will be closed immediately after.
Example
`
Sub foo
Dim a As Integer
a=0
Assert(a=1)
End Sub
foo
'' If -g is used this code stops with: test.bas(3): assertion failed at FOO: a=1
`
Dialect Differences

- Not available in the -lang qb dialect unless referenced with the alias `__ASSERT`.

Differences from QB

- New to FreeBASIC

See also

- `#Assert`
- `AssertWarn`