把定時操作當作帶迴圈的函式

2021-06-11 20:21:57 字數 1434 閱讀 1023

在之前有很長一段時間裡,雖然知道定時函式是幹什麼的,有些什麼作用,但是在理解上總感覺有點不自然,不那麼順暢。在思考了一段時間後,終於發現,可以把定時操作當作帶迴圈的函式來理解,這樣在使用定時操作的時候,想法就比較自然了。

函式幾乎是所有程式語言都會提供的一種抽象,它把一段**當作乙個整體,給它乙個名字,這樣,也就賦予了這段**語義。比如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.浮躁的根源,就是很多人不懂 有些階段就是無法跨越這個道理 一方面自己的慾望無限,一方面完成的事情太多,一方面自我滿意度的不斷下降 者就是人們總是不由自主地期望速成根源,出路肯定存在,但這出路只有乙個起點 接受現實,告訴自己 我有不足,我...