可能这是一个非常愚蠢的问题,但我不明白......从ASCII表示转换为相关数字我在Visual Studio 2012中使用strtof()。根据https://msdn.microsoft.com/en-us/library/dn320175.aspx(和根据Linux手册页,用gcc编译好的内容,需要包含stdlib.h。
现在我的问题:我已经在我的文件中 #include <stdlib.h>
但仍然遇到此编译错误!
知道什么可能遗漏?
谢谢!
编辑:代码示例
#include <stddef.h>
#include <stdlib.h>
static char *get_xyz(char *c,float *x,float *y,float *z)
{
c++;
if ((*c=='X') || (*c == 'A') || (*c=='x') || (*c=='a'))
{
c++;
if (*c) *x=strtof(c,NULL);
}
if ((*c=='Y') || (*c=='B') || (*c=='y') || (*c=='b'))
{
c++;
if (*c) *y=strtof(c,NULL);
}
if (z)
{
if ((*c=='Z') || (*c=='C') || (*c=='z') || (*c=='c'))
{
c++;
if (*c) *z=strtof(c,NULL);
}
}
return c;
}
答案 0 :(得分:1)
问题是Visual Studio不符合C标准。 strtof
于1999年在C语言中引入,这是在VS2012发布之前仅13年。 Microsoft尚未将其编译器更新为这些更改。
我认为他们现在终于为VS2015版本的这个(以前的)C语言标准引入了部分支持。我认为他们从2011年起根本不支持目前的C标准。
您最好的选择是使用符合标准的C编译器。