The C++ standard used C90 as a normative reference until C++11 and so C99 features would only be supported in C++11. Although a compiler would be free to support them outside of C++11 as an extension. I would suspect this would only work with more recent versions of Visual Studio given their relatively recent drive to support C99 and cremno indicates that it is supported since 2015.
If we go to the C++11 draft standard section 1.2
Normative references [intro.refs] it says:
The following referenced documents are indispensable for the
application of this document. For dated references, only the edition
cited applies. For undated references, the latest edition of the
referenced document (including any amendments) applies.
and includes:
- ISO/IEC 9899:1999, Programming languages — C
and also says:
The library described in Clause 7 of ISO/IEC 9899:1999 and Clause 7 of
ISO/IEC 9899:1999/Cor.1:2001 and Clause 7 of ISO/IEC
9899:1999/Cor.2:2003 is hereinafter called the C standard
library.1
prior to C++11 this was:
- ISO/IEC 9899:1990, Programming languages - C
and if we try an example in gcc using -std=c++03 -pedantic
it warns:
warning: ISO C++98 does not support the 'hh' gnu_printf length modifier [-Wformat=]