# 時間處理標頭檔 - `<time.h>` - 常用指令 - time(...) - 呼叫所需秒數 - 用法 ```C= time() /*代入一個長的int變數*/ ``` ```c= long int parameter; long int sec; sec = time(&parameter); /*也是可以不要回傳值啦*/ printf("%ld", sec); printf("%ld", parameter); ``` [引數的參考資料](https://edisonx.pixnet.net/blog/post/35305668) ```c= sec = time(NULL); ``` - 補充:NULL是第一個意思 - 0 - 垃圾筒 - 黑洞 - 萬用指標 - [回傳值?](http://kaiching.org/pydoing/c/c-return-type.html) - 具體作用 - time會計算EPOCH到time指令剎那所經秒數 - 可以用sizeof()填入下方修改整數長度 - `%d, sizeof(填入下方)` - short int:2byte - int:4byte - long int:4byte `%ld` - Mac是8byte - 在標頭檔time.h下可以寫成`time_t` - long long int:128byte - 長度是修飾字 - 可以寫成short/long,但絕對不是一種型態(只有四種型態) - 名詞解釋 - EPOCH計算機紀元元年1970/1/1 00:00:00 - 程式能反映出計算時間、處理狀態是比較好的互動 - 備註 - VS code附加元件Prettier可以自動排版語言 - 勾這些設定 ![](https://i.imgur.com/XNtrow6.png) - 雲端編譯器的原理 - 輸入→伺服器(通常為Linux)→回傳 - 缺點:不能讀取本機檔案,實踐一些功能,例如音樂播放 - 書不一定比線上教學好 - 實用價值 - 假設有一款遊戲,你就可以在開頭加上time_t start跟time_t end然後相減他們得到秒數。 老師的範例: ```c= #include <stdio.h> #include <time.h> int main() { puts("----------Number Guessing Game-----------"); puts("Rules: the answer is an integer between 0 ~ 9, guessing by inputting from keyboard."); const int answer = 6; int playerGuess; time_t start = time(NULL); printf("Input Here: "); scanf("%d", &playerGuess); if (playerGuess > 9) { puts("Your answer is too big, and out of upper bound."); } else if (playerGuess <= 9 && playerGuess >= 7) { puts("Your answer is too big."); } else if (playerGuess == 6) { puts("BINGO! you got it!!"); } else if (playerGuess <= 5 && playerGuess >= 0) { puts("Your answer is too small."); } else { puts("Your answer is too small, and out of lower bound."); } time_t end = time(NULL); printf("You take %ld seconds to play\n", end - start); puts("-----------------GAME OVER--------------"); return 0; } ``` 務必留意計時器位置 ### 另一個常用指令`ctime()`