assert(fd < picoev.max_fd); みたく書いてると、assertion が失敗した場合に表示されるエラーは、 Assertion failed: (fd < picoev.max_fd), function parse_hoge, file ..., line 15.のような形になる。でもこれだと、何をチェックしているのか、ライブラリユーザーにはわからないわけで。そこで、 #define PICOEV_IS_INITIALIZED_AND_FD_IS_IN_RANGE (fd < picoev.max_fd) ... assert(PICOEV_IS_INITIALIZED_AND_FD_IS_IN_RANGE); のようにマクロを挟めば、 Assertion failed: (PICOEV_IS_INITALIZED_AND_FD_IS_IN_RANGE), fun