In the first case the compiler knows what select set of sscanf()
conversions are to be used: string to int
.
sscanf(s, "%04d%02d%02d%02d%02d%02d", ...
In the second case, lacking this detail, the compiler thinks you might pass any format specifier, so the entire scanf()
set of conversions needs to be in code.
const char *format
sscanf(s, format, ...