Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Finished adding Annex K functions to the list

...

APIDescriptionVersion 
<complex.h>Absent; __STDC_NO_COMPLEX__ is not defined2012 
isblank()Absent2012 
<fenv.h>Absent2012 
<inttypes.h>Absent2012 

float_t, double_t, HUGE_VALF,
HUGE_VALL, INFINITY, NAN

Absent 2012 
#pragma FP_CONTRACTSpelled fp_contract instead of FP_CONTRACT2012 
fpclassify()Absent, use _fpclass() instead2012 
isfinite(), isinf()Absent, use _finite() or _finitef()instead2012 
isnan()Absent, use _isnan() or _isnanf() instead2012
isnormal()Absent, use _fpclass() instead 2012
signbit()Absent 2012 
acosh(), asinh(), atanh()Absent2012 
exp2(), expm1(), ilogb(), log1p(),
log2()
Absent2012 
scalbn()Absent; use _scalb() (or _scalbf() on x64 targets only) instead 2012 
cbrt()Absent 2012 
erf(), erfc(), lgamma(), tgamma()Absent2012
nearbyint(), rint(), lrint(),
round(), lround(), trunk()
Absent 2012
remainder(), remquo()Absent2012 
copysign()Absent; use _copysign() instead 2012 
nan(), nexttoward()Absent 2012 
nextafter()Absent; use _nextafter() or _nextafterf() instead 2012 
fdim()fmax(), fmin()Absent 2012 
fma()Absent 2012
isgreater(), isgreaterequal(),
isless(), islessequal(),
isunordered()
Absent 2012 
<stdalign.h>Absent  
va_copy()Absent 2012 
<stdatomic.h>Absent; __STDC_NO_ATOMICS__ is not defined2012 
<stdbool.h>Absent; _Bool is not supported in /TC mode, but bool is supported in /TP mode2012 
max_align_tAbsent 2012 
Printing format specifier type fieldS is MSVC-specific; c, s, and z are not conforming [ISO/IEC 9899-2011]; F is unsupported2012
Printing format specifier size fieldII32 and I64 are MSVC-specific; hw and l are not conforming [ISO/IEC 9899-2011]; hh, jz
and t unsupported
2012
Scanning format specifier type fieldS is MSVC-specific; c and s are not conforming [ISO/IEC 9899-2011]; p is unsupported2012 
Scanning format specifier size fieldI64 is MSVC-specific; h, l, and L prefixes are not conforming [ISO/IEC 9899-2011]; hh, j, z, and
t are unsupported
2012 
snprintf()Absent; use _snprintf() instead 2012
vfscanf(), vscanf(), vsscanf()Absent 2012 
fopen(), freopen()Mode parameter not conforming [ISO/IEC 9899-2011]; t, c, n, N, S, R, TD and css are MSVC
extensions; x is unsupported; see remarks
2012 
atoll()Absent; use _atoi64() instead 2012 
strtof(), strtold()Absent 2012
strtoll()Absent; use _strtoi64() instead 2012 
strtoull()Absent; use _strtoui64() instead 2012 
aligned_alloc()Absent; use _aligned_malloc() instead (beware, the parameter order is reversed)2012 
at_quick_exit(), quick_exit()Absent 2012 
_Exit()Absent; use _exit() instead2012
<stdnoreturn.h>Absent; use __declspec(noreturn) instead 2012 
<tgmath.h>Absent 2012 
<threads.h>Absent; __STDC_NO_THREADS__ is not defined2012 
TIME_UTC, struct timespec,
timespec_get()
Absent2012 
strftime(), wcsftime()z is not conforming [ISO/IEC 9899-2011]; C, D, e, F, gG, h, n, r, R, tT, uV unsupported2012
<uchar.h>Absent 2012 
vfwscanf(), vswscanf(), vwscanf()Absent2012 
fwide()Unsupported 2012 
wcstof(), wcstold()Absent 2012 
wcstoll()Absent; use _wcstoi64() instead 2012 
wcstoull()Absent; use _wcstoui64() instead2012 
iswblank()Absent 2012 
FLT_EVAL_METHOD, *_HAS_SUBNORM,
*_DECIMAL_DIG, *_TRUE_MIN
Absent 2012 
__STDC_LIB_EXT1__
Not defined; instead, MSVC uses __STDC_SECURE_LIB__ and __STDC_WANT_SECURE_LIB__2012 
fopen_s(), freopen_s()Uses the same mode strings as fopen()u prefix is unsupported; see remarks2012 
vfscanf_s(), vscanf_s(),
vsscanf_s()
Absent 2012 
constraint_handler_t,
set_constraint_handler_s(),
abort_handler_s(),
ignore_handler_s()
Absent; use _invalid_parameter_handler and _set_invalid_parameter_handler()
instead.  Beware that the _invalid_parameter_handler signature is considerably different than
that of constraint_handler_t.  No replacement for abort_handler_s() or
ignore_handler_s()
2012 
bsearch_s()Not conforming [ISO/IEC 9899-2011]; beware that the comparison function pointer's signature is
different from the standard; namely that the context parameter comes first in MSVC but last in ISO C.
2012 
qsort_s()Not conforming [ISO/IEC 9899-2011]; beware that the comparison function's pointer signature is different
from the standard; namely that the context parameter comes first in MSVC but last in ISO C. 
2012
strtok_s()Not conforming [ISO/IEC 9899-2011]; the function signature is missing the rsize_t * parameter.2012 
memset_s(), strerrorlen_s() Absent 2012
gmtime_s(), localtime_s()Not conforming [ISO/IEC 9899-2011]; the function signature has the parameters reversed and returns
errno_t instead of struct tm *.
2012
snwprintf_s()Absent; use _snwprintf_s() instead.  Note that the parameters differ from the ISO C signature.2012
vfwscanf_s(), vswscanf_s(),
vwscanf_s()
Absent2012

vsnwprintf_s()

Absent, use _vsnwprintf_s() instead.  Note that the parameters differ from the ISO C signature.2012 
wcstok_s()Not conforming [ISO/IEC 9899-2011]; the function signature is missing the rsize_t * parameter.2012 

fopen() & freopen()

The C standard does not specify what happens with Windows newline characters (CRLF), and so care should be taken when working with text files.  For instance:

...