strtof undefined;假设extern返回int

时间:2017-03-24 07:02:41

标签: c visual-studio visual-studio-2012

可能这是一个非常愚蠢的问题,但我不明白......从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;
}

1 个答案:

答案 0 :(得分:1)

问题是Visual Studio不符合C标准。 strtof于1999年在C语言中引入,这是在VS2012发布之前仅13年。 Microsoft尚未将其编译器更新为这些更改。

我认为他们现在终于为VS2015版本的这个(以前的)C语言标准引入了部分支持。我认为他们从2011年起根本不支持目前的C标准。

您最好的选择是使用符合标准的C编译器。