如何在C++中用time.h去除警告?

1 c++ warnings system-calls time.h

当我用这个

#include<time.h>
//...
int n = time(0);
//...
Run Code Online (Sandbox Code Playgroud)

我收到关于将时间转换为int的警告.有没有办法删除此警告?

Bob*_*oss 20

是的,将n改为atime_t.如果你在大多数/所有系统上查看time.h中的签名,你会看到它返回的是什么.

#include<time.h>
//...
time_t n = time(0);
//...
Run Code Online (Sandbox Code Playgroud)

注意Arak是对的:使用32位int是一个问题,至少,由于2038错误.但是,您应该考虑对整数n(而不是time_t)进行任何类型的算术只会增加代码早期错过该错误的概率.

PS:如果我在原始答案中没有说清楚,对编译器警告的最佳响应几乎总是要解决你被警告的情况.例如,将较高精度的数据强制转换为较低精度的变量会丢失信息 - 编译器正试图警告您,您可能刚刚创建了一个有人不会在很久之后绊倒的地雷错误.