C and C++ notes / Semi-sorted
Jump to navigation
Jump to search
Notes related to C and C++
Note: Some notes describe behaviour common to most variants - for C mostly meaning C89 (and a bit of C99), unless mentioned otherwise. |
Preprocessor
Debugging
assert.h
(ANSI-C, C99) (verify)
assert() statements (via preprocessor) that are only compiled in when NDEBUG is not defined.
This lets you have debug expressions that are automatically omitted from production, without explicitly wrapping them in #ifndef NDEBUG ... #endif.
If an assert fails:
- error information is written to stderr (including __FILE__, __LINE__, __func__ if C99, and the assert expression as text)
- abort() is called