Macro that annotates a vararg function that operates like printf.
Defined in <SDL3/SDL_stdinc.h>
#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 )))
If we were to annotate fprintf
:
int fprintf(FILE *f, const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
This notes that the second parameter should be a printf-style format string, followed by ...
. The compiler or other analysis tools can warn when this doesn't appear to be the case.
On compilers without this annotation mechanism, this is defined to nothing.
This can (and should) be used with SDL_PRINTF_FORMAT_STRING as well, which between them will cover at least Visual Studio, GCC, and Clang.
This macro is available since SDL 3.1.3.