Вопрос возник при изучении библиотеки
Nuklear. Для каждого (почти) виджета, в данной библиотеке есть элементы структуры:
void(*draw_begin)(struct nk_command_buffer*, nk_handle);
void(*draw_end)(struct nk_command_buffer*, nk_handle);
Эти элементы используются при отрисовке того или иного виджета:
//* draw progressbar */
if (style->draw_begin) style->draw_begin(out, style->userdata);
nk_draw_progress(out, *state, style, &bounds, &cursor, value, max);
if (style->draw_end) style->draw_end(out, style->userdata);
Так вот вопрос: Как собственно это работает и что это вообще (как это называется и где про такое почитать)?
Объявления у функций draw_begin\draw_end нет.
Это не коллбек ( нет указателя на какую либо функцию ).
Как при возврате void оно отрабатывает в операторе if ?