c++ - 如何在 C++ 中使用 time.h 消除警告?

标签 c++ warnings system-calls time.h

当我使用它时

#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/

相关文章:

c++ - std::map 插入另一个 map

c++ - 谁能建议一种从类中创建整数键的方法?

c++ - 寻找单图像 HDR 算法

javascript - Vue 3 传递数组警告 : Extraneous non-props attributes were passed to component but could not be automatically inherited

c++ - fwrite 对大量小写的效率

c - 使用系统调用打印文件系统上的所有文件

c++ - 全局模板函数的问题

ios - 尝试在演示过程中在 UITabBarController 上显示 UIImagePickerController

Fortran 运行时警告 : temporary array

c - malloc - 系统调用 - 它是如何制作的?