Visual Studio 2013中的C99库支持

大家好,我是Pat Brenner,Visual C++图书馆团队的开发者。在这篇博文中,我想分享一些关于在VisualStudio2013中添加到C运行时库的C99支持的信息。

null

总之,我们在以下头文件中添加了缺失函数的声明和实现:math.h、ctype.h、wctype.h、stdio.h、stdlib.h和wchar.h。我们还添加了新的头文件complex.h、stdbool.h、fenv.h和inttypes.h,并为其中声明的所有函数添加了实现。此外,我们还添加了新的C++包装头(CCOMPUCTION,CFENV,CITNETMYS,CTGMICE),并更新了一些其他的(CCOMPUCTE,CCDYPE,CLALAL,CMADIST,CSSTDIN,CSSTDIO,CSTRON,CWCHAR,CWCYPE)。

大部分工作(所有的C标题,除了STDBOOL。H和FEVV。H)都是为VisualStudio 2013预览版本及时完成的,并且可以使用它,但是剩余的(StdBoo.h,Funv.h和C++包装头)已经为VisualStudio 2013 RTM完成了,并且将在该版本中可用。

更详细地说,这些是我们添加的声明和实现,按声明它们的头分组:

  • 数学h:
    • floatu t、doubleu t、fpclassify、isfinite、isinf、isnan、isnormal、signbit
    • 巨大的,巨大的,无限的,南,数学错误,数学错误
    • FP_无穷大、FP_NAN、FP_NORMAL、FP_次正规、FP_ZERO、FP_ILOGB0、FP_ILOGBNAN
    • 阿科什,阿科什,阿科什,阿辛哈,阿辛哈,阿辛哈,阿坦哈,阿坦哈,阿坦哈
    • exp2、exp2f、exp2l、expm1、expm1f、expm1l
    • ilogb、ilogbf、ilogbl、logb、logbf、logbl、log1p、log1pf、log1pl、log2、log2f、log2l
    • scalbn,scalbnf,scalbnl,scalbln,scalbln,scalbnl
    • cbrt、cbrtf、cbrtl、erf、erff、erfl、erfc、erfcf、erfcl
    • lgama,lgamaf,lgamal,tgama,tgamaf,tgamal
    • 近景,近景,近景,近景,南景,南景,南景
    • rint,rintf,rintl,lrint,lrintf,lrintl,llrint,llrintf,llrintl
    • 圆的,圆的,圆的,L圆的,L圆的,L圆的,L圆的,L圆的,L圆的,L圆的,L圆的
    • trunc,truncf,truncl,余数,余数,余数,remquo,remquof,remquol
    • 下一个,下一个,下一个,下一个,下一个,下一个,下一个
    • fdim、fdimf、fdiml、fmax、fmaxf、fmaxl、fmin、fminf、fminl、fma、fmaf、fmal
  • 复杂h:
    • 可可豆,可可豆,可可豆,赌场,赌场,赌场,卡坦,卡坦夫,卡坦
    • ccos、ccosf、ccosl、csin、csinf、csinl、ctan、ctanf、ctanl
    • cacosh,cacoshf,cacoshl,casish,casinhf,casinhl,catanh,catanhf,catanhl
    • ccosh,ccoshf,ccoshl,csinh,csinhf,csinhl,ctanh,ctanhf,ctanhl
    • cexp、cexpf、cexpl、clog、clogf、clogl、cabs、cabsf、cabsl
    • cpow、cpowf、cpowl、csqrt、csqrtf、csqrtl、carg、cargf、cargl
    • cimag、cimagf、cimagl、conj、conjf、conjl、cproj、cprojf、cprojl、creal、crealf、creall
  • 芬夫·h:
    • fegetenv,fesetenv,feupdateenv,fegetexceptflag,fesetexceptflag
    • feclearexcept,feholdexcept,fetestexcept,feraiseexcept
  • inttypes.h:
    • PRIi8、PRIi16、PRIi32、PRIi64、PRIiMAX、PRIiPTR、PRIIEAST8、PRIIEAST16、PRIIEAST32、PRIIEAST64、PRIiFAST8、PRIiFAST16、PRIiFAST32、PRIiFAST64
    • PRIo8、PRIo16、PRIo32、PRIo64、PRIoMAX、PRIoPTR、PRIoLEAST8、PRIoLEAST16、PRIoLEAST32、PRIoLEAST64、PROFAST8、PROFAST16、PROFAST32、PROFAST64
    • PRIu8、PRIu16、PRIu32、PRIu64、PRIuMAX、PRIuPTR、PRIuLEAST8、PRIuLEAST16、PRIuLEAST32、PRIuLEAST64、PRIuFAST8、PRIuFAST16、PRIuFAST32、PRIuFAST64
    • PRIx8、PRIx16、PRIx32、PRIx64、PRIxMAX、PRIxPTR、PRIxLEAST8、PRIxLEAST16、PRIxLEAST32、PRIxLEAST64、PRIxFAST8、PRIxFAST16、PRIxFAST32、PRIxFAST64
    • PRIX8、PRIX16、PRIX32、PRIX64、PRIXMAX、PRIXPTR、PRIXLEAST8、PRIXLEAST16、PRIXLEAST32、PRIXLEAST64、PRIXFAST8、PRIXFAST16、PRIXFAST32、PRIXFAST64
    • SCNd8、SCNd16、SCNd32、SCNd64、SCNdMAX、SCNdPTR、SCNdLEAST8、SCNdLEAST16、SCNdLEAST32、SCNdLEAST64、SCNdFAST8、SCNdFAST16、SCNdFAST32、SCNdFAST64
    • SCNi8、SCNi16、SCNi32、SCNi64、SCNiMAX、SCNiPTR、SCNiLEAST8、SCNiLEAST16、SCNiLEAST32、SCNiLEAST64、SCNiFAST8、SCNiFAST16、SCNiFAST32、SCNiFAST64
    • SCNo8、SCNo16、SCNo32、SCNo64、SCNoMAX、SCNoPTR、SCNoLEAST8、SCNoLEAST16、SCNoLEAST32、SCNoLEAST64、SCNoFAST8、SCNoFAST16、SCNoFAST32、SCNoFAST64
    • SCNu8、SCNu16、SCNu32、SCNu64、SCNuMAX、SCNuPTR、SCNULEAT8、SCNULEAT16、SCNULEAT32、SCNULEAT64、SCNuFAST8、SCNuFAST16、SCNULEAT32、SCNuFAST64
    • SCNx8、SCNx16、SCNx32、SCNx64、SCNxMAX、SCNxPTR、SCNxLEAST8、SCNxLEAST16、SCNxLEAST32、SCNxLEAST64、SCNxFAST8、SCNxFAST16、SCNxFAST32、SCNxFAST64
    • SCNX8、SCNX16、SCNX32、SCNX64、SCNXMAX、SCNXPTR、SCNXLEAST8、SCNXLEAST16、SCNXLEAST32、SCNXLEAST64、SCNXFAST8、SCNXFAST16、SCNXFAST32、SCNXFAST64
    • imaxabs、imaxdiv、strtoimax、strtoumax、wcstoimax、wcstoumax
  • 字符函数
    • 是空白的
  • wctype.h型
    • iswblank公司
  • 浮动.h
    • 十进制数字法
  • 标准h
    • VAU副本
  • 标准池
    • bool,true,false,uu boolu trueu false是定义的
  • 标准时间
    • vscanf、vfscanf、vsscanf
  • 标准lib.h
    • 环礁
  • wchar.h公司
    • vwscanf、vfwscanf、vswscanf、wcstof、wcstold、wcstoll、wcstoull

我们知道这并不是对C99库函数的完全支持。据我们所知,缺失的部分如下:

  • 缺少tgmath.h头。此标头需要C编译器支持。
    • 注意ctgmath 添加了头这是可能的,因为该头不需要tgmath.h头,只需要ccomplex和cmath头。
  • 缺少uchar.h标头。这是来自C Unicode TR。
  • printf系列中的几个格式说明符尚不受支持。
  • stdio.h和wchar.h中缺少snprintf和snwprintf函数。

我希望你觉得这些信息有用。我们做了所有我们有时间做的事情,同时尝试优先考虑那些我们认为最重要的功能。

Pat Brenner,VisualC++开发团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享