c - 警告 C4244:'function':从 'time_t' 转换为 'unsigned int',可能丢失数据'
问题描述
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
// Program to generate random numbers, using an array
int main() {
int arr[50];
int i;
srand((unsigned int)time(NULL));
for (i = 0; i < 50; i++)
{
arr[i] = rand() % 50;
printf("arr[%d] = %d\t", i, arr[i]);
}
_getch();
return 0;
}
我收到这个警告:
(12):警告 C4244:'function':从 'time_t' 转换为 'unsigned int',可能会丢失数据。
解决方案
srand
想要一个unsigned int
as 参数,但time
返回一个time_t
比unsigned int
您的平台上更大的类型,因此警告可能丢失数据。
在这种情况下,可以忽略警告,因为您实际上只是想给srand
.
要摆脱警告,您可以将返回的值time
转换为unsigned int
:
srand((unsigned int)time(NULL));
推荐阅读
- pagination - Zip 文件 - 是否可以对文件数据进行分页?
- arrays - 如何使用等于命令在powershell中创建foreach循环
- c# - C# 缓慢写入控制台
- swift - 为什么根据泛型函数参数的类型分析镜像子代会产生 nil 结果?
- java - 出现意外错误(404 Not Found)JSP 和 Spring Boot
- ruby-on-rails - 活动模型序列化程序的参数数量错误
- search - ANTLR - 在字符串中找到语法的第一个匹配项
- php - 在 index.blade.php 中找不到类“应用程序/人员”
- c# - 将 dll 链接到 ac# 项目时找不到 kernel32 的 InterlockedExchange 方法
- excel - 从excel表中读取单个单元格