Aufgabe 7: Anwendung
Contains several macros usable for making assertions. More...
This graph shows which files directly or indirectly include this file:
Macros | |
#define | STRINGIFY(S) #S |
Converts a macro parameter into a string. More... | |
#define | assert_size(TYPE, SIZE) static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE)) |
Statically ensure (at compile time) that a data type (or variable) has the expected size. More... | |
#define | assert(EXP) |
Ensure (at execution time) an expression evaluates to true , print an error message and stop the CPU otherwise. More... | |
Functions | |
void | assertion_failed (const char *exp, const char *func, const char *file, int line) |
Handles a failed assertion. More... | |
Detailed Description
Contains several macros usable for making assertions.
Depending on the type of assertion (either static or at runtime), a failing assertion will trigger an error. For static assertion, this error will be shown at compile time and abort compilation. Runtime assertions will trigger a message containing details about the error occurred and will make the CPU die.
Function Documentation
void assertion_failed | ( | const char * | exp, |
const char * | func, | ||
const char * | file, | ||
int | line | ||
) |
Handles a failed assertion.
This function will print a message containing further information about the failed assertion and stops the current CPU permanently.
- Note
- This function should never be called directly, but only via the macro
assert
.
- Parameters
-
exp Expression that did not hold func Name of the function in which the assertion failed file Name of the file in which the assertion failed line Line in which the assertion failed