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