Ответ 1
av_printf_format
- это макрос, который может необязательно добавить атрибут GCC в объявление функции. Он определил в attributes.h:
#ifdef __GNUC__
# define av_builtin_constant_p __builtin_constant_p
# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos)))
#else
# define av_builtin_constant_p(x) 0
# define av_printf_format(fmtpos, attrpos)
#endif
Таким образом, это фактически объявление функции, которое может иметь определенный атрибут, если скомпилирован в GCC.
Атрибут format
указывает GCC, что функция принимает свои аргументы как printf
, что помогает диагностировать некоторые ошибки.