#define SDL_PRINTF_VARARG_FUNCV( fmtargnumber ) __attribute__(( format( __printf__, fmtargnumber, 0 )))
vfprintfにアノテーションを付与するとする:
int vfprintf(FILE *f, const char *fmt, va_list ap) SDL_PRINTF_VARARG_FUNCV(2);
これは第2引数がprintf形式の文字列であり, この後にva_listが続くという注釈である. コンパイラやアナライザツールは, その通りになっていないと思われるとき警告を発することがある.
アノテーションの機能のないコンパイラでは何も行わない.
これはSDL_PRINTF_FORMAT_STRINGと共に使用できる(そして使用すべきである). これらは少なくともVisual Studio, GCC, Clangが対応している.