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