如何在VC11中获取floor()的地址?

时间:2013-09-07 23:41:43

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

由于某种原因,即使在编译C源文件时,floor()也是VC11中的重载函数。在我的代码中,“floor”用于初始化结构中的void指针。它现在导致错误,因为VC11无法确定要使用的函数版本。

1 个答案:

答案 0 :(得分:0)

Visual Studio从未因高度C兼容而闻名。您可以put the compiler in C mode,但我不确定这是否会解决头文件问题。

如果没有,可能的解决方法是检测编译器是否为C ++并将floor的“值”转换为所需重载的签名(如果是),例如:

#ifdef __cplusplus
void* fp = reinterpret_cast<void*>((double (*)(double)) floor);
#else
void* fp = floor;
#endif