当我使用它时
#include<time.h>
//...
int n = time(0);
//...
我收到有关将时间转换为整数的警告。有没有办法消除这个警告?
最佳答案
Yes, change n to be a time_t
.如果您在大多数/所有系统上查看 time.h 中的签名,您会发现这就是它返回的内容。
#include<time.h>
//...
time_t n = time(0);
//...
请注意 Arak是对的:使用 32 位 int 是一个问题,至少是 due to the 2038 bug .但是,您应该考虑到对整数 n(而不是 time_t)进行的任何类型的算术只会增加您的代码及早解决该错误的可能性。
PS:如果我在原始答案中没有说清楚,对编译器警告的最佳响应几乎总是解决您收到警告的情况。例如,将精度更高的数据强制转换为精度更低的变量会丢失信息 - 编译器试图警告您,您可能刚刚制造了一个地雷漏洞,直到很久以后才会被人绊倒。
关于c++ - 如何在 C++ 中使用 time.h 消除警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482656/