警告 C4244:"函数":从 'time_t' 转换为"无符号 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] = %dt", i, arr[i]);
}
_getch();
return 0;

}

我收到这个警告:

(12(:警告C4244:"function":从"time_t"转换为"unsigned int",可能会丢失数据。

srand想要一个unsigned int作为参数,但time返回的time_t是您平台上比unsigned int更大的类型,因此警告可能会丢失数据

在这种情况下,可以忽略警告,因为实际上您只想给srand一个看似随机的值。

要消除警告,可以将time返回的值强制转换为unsigned int:

srand((unsigned int)time(NULL));

最新更新