callback 的一個簡單示例

//回調函數的簡單理解
//例子溫度計顯示溫度。

//有兩種方式
// 1. 睡眠5秒,查看一下溫度計讀數函數,如果度數改變則更新顯示。
// 2. 把顯示接口暴露給溫度計度數函數,由溫度計來顯示,這樣不用一直去訪問,浪費切換時間。

// ====== method 1. 輪詢 ======
float read(){
    return get_temperature();
}

void display(){
    float f = read();
    print(f);
    return;
}


// ====== method 2. callback ======

float history;
// 引入函數指針;
float read( (void)(*function)(void) ){
    float f = get_temperature();
    if( f != history){
        (*function)();
    }
    return f;
}

// 調用
read(&display);

// plus:
// 中斷程序是特殊的回調
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章