You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

When compiling with a specific vendor's implementation of the C language, and related libraries, be aware that, unfortunately, standards conformance can differ from vendor to vendor.  Be certain to read your vendor's documentation to reduce the likelihood of accidentally relying on implementation-specific behavior or deviations.

Implementation-Specific Deviations

Implementation-specific deviations are listed below.  The Version column lists the latest version of the compiler or library that exhibits the behavior.

Microsoft Visual Studio

APIDescriptionVersion Link
Format specifier type fieldc, s, and z are not ANSI compatible; F unsupported2012MSDN
Format specifier size fieldII32 and I64 are MSVC-specific; hw and l are not ANSI compatible; hh, jz and t unsupported2012MSDN
<complex.h>Absent; __STDC_NO_COMPLEX__ is 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 MSDN
fpclassify()Absent, use _fpclass() instead2012 MSDN
isfinite(), isinf()Absent, use _finite() or _finitef()instead2012 MSDN
isnan()Absent, use _isnan() or _isnanf() instead2012MSDN
isnormal()Absent, use _fpclass() instead 2012MSDN
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 MSDN
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 MSDN
nan(), nexttoward()Absent 2012  
nextafter()Absent; use _nextafter() or _nextafterf() instead 2012 MSDN
fdim()fmax(), fmin()Absent 2012  
fma()Absent 2012 
isgreater(), isgreaterequal(),
isless(), islessequal(),
isunordered()
Absent 2012  
<stdalign.h>Absent   

 

 

  • No labels