1、.時間
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]來交換。