Main Content

mxAssert (C)

Check assertion value for debugging purposes

C Syntax

#include "matrix.h"
void mxAssert(int expr, char *error_message);

Arguments

expr

Value of assertion

error_message

Description of why assertion failed

Description

Like the ANSI® C assert macro, mxAssert checks the value of an assertion, and continues execution only if the assertion holds. If expr evaluates to logical 1 (true), mxAssert does nothing. If expr evaluates to logical 0 (false), mxAssert terminates the MEX file and prints an error to the MATLAB® command window. The error contains the expression of the failed assertion, the file name, and line number where the failed assertion occurred, and the error_message text. The error_message allows you to specify a better description of why the assertion failed. Use an empty string if you do not want a description to follow the failed assertion message.

The mex script turns off these assertions when building optimized MEX functions, so use assertions for debugging purposes only. To use mxAssert, build the MEX file using the mex -g filename syntax.

Assertions are a way of maintaining internal consistency of logic. Use them to keep yourself from misusing your own code and to prevent logical errors from propagating before they are caught. Do not use assertions to prevent users of your code from misusing it.

Assertions can be taken out of your code by the C preprocessor. You can use these checks during development and then remove them when the code works properly. Use assertions for troubleshooting during development without slowing down the final product.

Version History

Introduced before R2006a