VS2015编译时“ The POSIX name for this item is deprecated.”的分析

VS2015中使用itoa()函数进行编译时会产生如下报错信息,The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa. ”。该报错信息为“POSIX命名方式不推荐使用,推荐使用ISO CC++的函数名itoa”。就是说,itoa()是采用POSIX方式命名的,而_itoa()是采用ISO C方式命名的。

1 产生原因

1.1 POSIX

POSIX的全称是Protable Operating System Interface of UNIX,即可移植操作系统接口。POSIX详细描述了一些函数,这些函数是在C标准库之外定义的,这些函数只能被部分的编译器所支持。

1.2 ANSI C

ANSI的全称是American National Standards Institute即美国国家标准协会。ANSI C则是ANSIC语言发布的标准。使用C的软件开发者被鼓励遵循ANSI C文档的要求,因为它鼓励使用跨平台的代码。

ANSIC现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。任何仅仅使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何平台上用遵循C标准的编译器编译成功。

1.3 不使用POSIX

VC++2005文档中提到,微软不再支持传统的POSIX方式命名的C语言函数,取而代之的是在其函数名前加入下划线的函数名,即ANSI C方式命名的函数。

2 解决方法

基本的解决方法就是如提示信息中说的那样,使用ANSI C方式命名的函数来替代POSIX方式命名的函数。如果必须要使用POSIX方式命名的函数,可以通过修改项目的属性来实现。

VS2015中选择“项目->XXX属性”,打开属性页。之后在左侧的树中选择“配置属性->C/C++->预处理器”,如图1所示。

 

1 打开项目属性

在右侧的“预处理器定义”栏中选择“编辑”,如图2所示。

 

2 编辑预处理器定义

最后,在弹出的预处理器定义的对话框中,输入“_CRT_NONSTDC_NO_DEPRECATE”

_CRT_SECURE_NO_WARNINGS”,分别表示使用非标准函数和不弹出警告,最后点击“确定”按键,如图3所示。

 

3 添加预处理器

此时,就可以在程序中使用itoa()函数了。

  • 34
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值