On 11.03.2019 15:52, Jeremy Sowden wrote:
It's the value that matters, not the type. It will only be too big for
the buffer if the result of casting local->force_tx_status to int is
less than -9 or greeater than 99.
scnprintf(buf, size(buf), "%lld\n", (long long)local->force_tx_status)
would also be fine if the value were in range. Note also that scnprintf
will not overrun the buffer: it will truncate the string.
Thanks for the clarification :)
As it happens, arguments to variadic functions are subject to the
"default argument promotions," so if local->force_tx_status is in fact a
bool (I can't find the definition), it would be promoted to int and the
cast is superfluous.
Yes - the cast is superfluous. We still think it might be useful to keep it
there to make the point that the value will be casted. However, if you
prefer to omit the cast, we are happy to take it out.
Thank you,
Julius and Charlie