On Tue, 26 Feb 2019 at 14:26, Jonathan Wakely wrote: > A bit later it says: > > If any argument is > not the correct type for the corresponding conversion specification, > the behavior is > undefined. > > The "conversion specification" is %hd so includes both the h length > modifier and the d conversion specifier, and it's not clear to me > whether "the correct type" means the type as modified by the length > modifier or not, i.e. whether %hd Oops, I meant to say it's unclear whether the correct type for %hd is int or short int.