Linux下C开发中几点技术小总结

Linux系统在时间上有比较多的东西。在游戏里,时间是一个非常重要的一个变量,涉及到前后端时间同步,游戏业务的倒计时,心跳等等的一系列功能点等等,如果能够灵活运用时间这个变量,最起码你要知道如下几个函数或者变量

time_t

这个变量其实是一个long型,表示的是从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数。对,指标是秒数。
 
在time.h文件中还有一些其他以其为参数的函数

在time.h头文件中,我们还可以看到一些函数,它们都是以time_t为参数类型或返回值类型的函数:
 
double difftime(time_t time1, time_t time0);
time_t mktime(struct tm * timeptr);
time_t time(time_t * timer);
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);

下面为了更加精确
 
下面两个类型也会经常使用到

struct timeval *a_pstTv, struct timezone *a_pstTz

当我们调用

gettimeofday(&pstCtx->stCurr, NULL);

获取到当前的时间

2、随机数

随机数在程序里也是经常使用,随机出来一个数,使一些事情看起来很有随机性。

C语言目前提供的是rand函数。那我们如何使用呢,看如下宏

#define RAND1(range)  ((int)((double)(range)*rand()/(RAND_MAX+1.0)))

这个宏随机出了0到 rang-1中间的一个数。但我们想使用一个他来打乱我们的一个数组的顺序的时候,我们可以随机出它的下标,然后用来与某个具体的

元素比如,array[0]来交换。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/865b741a1ff025430a2f7c705d072b5f.html