在之前有很長一段時間裡,雖然知道定時函式是幹什麼的,有些什麼作用,但是在理解上總感覺有點不自然,不那麼順暢。在思考了一段時間後,終於發現,可以把定時操作當作帶迴圈的函式來理解,這樣在使用定時操作的時候,想法就比較自然了。
函式幾乎是所有程式語言都會提供的一種抽象,它把一段**當作乙個整體,給它乙個名字,這樣,也就賦予了這段**語義。比如printf();在討論問題的求解、方案的設計時,我們可以直接用「列印某某字串」來描述,而不需要說「獲得某個字串,然後呼叫系統的
io...
」。這樣思路會更加清晰,才不會使設計人員迷失在如何實現的細節當中。總的來說,乙個函式的名稱說明了它能做什麼,而函式的**體則說明了怎麼做。
帶迴圈的函式樣式如下:
void function(parameter par)
}
首先,函式需要接收一些引數parameters
,這些引數將告訴函式需要對哪些資料進行處理。接著,將
flag
設定為1
,這樣迴圈體就開始了一遍一遍的迴圈,在檢測到某個條件(
somecondition
)滿足時,將
flag置0
,在flag為0
時會結束迴圈。
接著,我們看一下定時操作。所謂定時操作就是在相隔一定的時間段後重複執行一段**(somework
),而往往定時都會在達到某些條件時停止這段**的執行。比如很多的動畫效果就是定時操作。
所以,定時操作可以理解為乙個迴圈操作,只不過相對於我們所熟悉的while
迴圈來說,定時操作是每隔一定時間迴圈一次,而
while
迴圈則是一次馬上接連一次。
定時器函式可以設計如下:
int flag ;
parameter par ;
void ontimer()
{ for(int i=0; i
開啟乙個定時操作可以理解為呼叫乙個帶迴圈的函式。函式的呼叫可以分兩步:先準備好引數,接著呼叫函式。對於定時操作來說,準備好引數就是填充某個par[i]
(見**);而呼叫函式則可以看作是將
flag[i]
的值設為1。
舉乙個實際的例子。在網頁中經常會有一些動畫,比如,選單的緩緩下落,在全部顯示選單後就停止下落。這裡,選單的下落就可以看作是執行乙個迴圈函式,比如選單的高度從0
一直變到
50,等間隔
1取樣,就可以得到
0~50
的連續整數。每一次迴圈顯示其中乙個高度,當高度達到
50之後就結束了迴圈。所不同的是,在一定的時間間隔後才執行一次迴圈。
重要的是將定時操作看作是乙個迴圈函式這種思考方式。
把時間當作朋友
其實要管理的不是時間,而是自己。通過鍛鍊自己的心智來管理好自己。心智指的是人的各項思維能力的總和。心智包含三方面能力,獲取知識,應用知識和抽象推理。所有人面臨的困境是不願意花時間思考。蘇格拉底揭示所謂的思考過程是 提問和回答 培根說讀書使人完整,討論使人完備,寫作使人完善。不思考的人沒有問題可問。會...
《把時間當作朋友》
然後,然後買了 把時間當作朋友 kindle只有第三版了,但是我還是更喜歡第一版。這是一本可以經常看,並作為行動指南的書。運用心智獲得解放,心智是各項思維能力的總和,主要包括以下3個方面的能力 a.獲得知識 b.應用知識 c.抽象推理 把腦子中的錯誤觀念摘掉 相同的推理得出完全相反的結論 如果是99...
把時間當作朋友
期望速成,兩個原因 a.人希望自己的慾望馬上得到滿足的天性 b.浮躁的根源,就是很多人不懂 有些階段就是無法跨越這個道理 一方面自己的慾望無限,一方面完成的事情太多,一方面自我滿意度的不斷下降 者就是人們總是不由自主地期望速成根源,出路肯定存在,但這出路只有乙個起點 接受現實,告訴自己 我有不足,我...