# assert_default_params.c

> Source: <https://gist.github.com/pervognsen/9d46bf9b9187cb7f89d64132dc586e07>
> Published: 2021-02-01 10:13:51+00:00

assert_default_params.c

      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      
Learn more about bidirectional Unicode characters

 
    Show hidden characters

void
 
assert_func
(
int
 
cond
, 
const
 
char
 
*
msg
) {

 
if
 (!
cond
) {

 
fprintf
(
stderr
, 
"assert failed: %s\n"
, 
msg
);

 
abort
();

    }

}

#define
 
assert_helper
(
x
, 
y
, ...) assert_func(x, y)

#define
 
assert
(
x
, ...) assert_helper((x), ## __VA_ARGS__, #x)

int
 
main
(
int
 
argc
, 
char
 
*
*
argv
) {

 
assert
(
argc
 
>
 
0
);

 
assert
(
argv
[
0
] 
!=
 
0
, 
"argv[0] cannot be null"
);

}
