c语言哪个时间函数是精确到毫秒的?使用srand(time(NULL))的话,如果在同一秒运行程序

c语言哪个时间函数是精确到毫秒的?使用srand(time(NULL))的话,如果在同一秒运行程序,产生的随机数都是一样的。
哪个时间函数是精确到毫秒的而且可以给srand当种子的?

clock()函数
头文件:time.h
作用:返回从程序执行开始的时钟周期数
返回值类型:clock_t型,为自定义的长整型
可以将其除以常数CLOCKS_PER_SEC再乘以1000以转化为毫秒数。追问

为什么我把clock()当做srand()的种子时,每次运行得到的十个随机数都是一样的?

追答

由于程序执行太快,clock()函数返回值基本为0。如果你想创造多个并行的程序,可以尝试多线程编程,Windows下用CreateThread API,Linux下用fork()函数。然后,每个线程分别用Sleep()函数等待线程号*10ms的时间,再调用clock()函数,此时返回值就会各异了。或者,采用二次随机,即先产生一串随机数作为每个线程的种子,然后再根据种子产生随机序列。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-04
在没次获取随机数前sleep2.5秒咯