【发布时间】:2017-02-03 15:57:25
【问题描述】:
考虑以下小程序:
#include <time.h>
int main(void) {
time_t now;
now = time(NULL); // This term gives an error in VS2010
return 0;
}
在带有gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 的 Ubuntu 上,这编译没有错误。
但是,当我在 VS2010 项目中使用上述代码 sn-p 时,项目不会构建。错误是:
error C2064: term does not evaluate to a function taking 1 arguments
我也尝试过使用time() 和time(&time_t)。两者都以error C2064 失败。根据MS documentation上面的用法应该是正确的。
time() 函数在 VS2010 中实际接受了多少个参数?
【问题讨论】:
-
@Stargateur:不,MSVC 中没有“默认”。 MSVC 的行为与任何其他编译器的行为几乎相同:语言取决于文件扩展名或可以手动指定。
-
@nautical:如果您的 VS 项目中有其他代码,那么原因就在其他代码中。你一定以某种方式重新声明了
time。上面的小程序在VS中编译得很好。 (不,C 不是 C++ 的子集。它是一种不同的语言。所以在一般情况下,C++ 不应该能够“处理 C”)。 -
你说“当我在VS2010项目中使用上面的代码sn-p时......”所以不是你发布的代码导致了问题,而是你没有不发帖?
-
试试这个 (::time)(NULL)
-
归结为:this sn-p 编译成功与否?您没有说清楚,也没有指定确切的问题和位置。如果不是,你必须检查你的工具链,因为这是有效的代码,虽然在 C++ 项目中使用 C 头文件的风格不好,否则问题显然出在其他代码中。
标签: c++ visual-studio-2010 time