天天看點

不用變量調用 同一個累加函數 -- struct A a 與 struct A *a 差別

1、指針調用

函數代碼:

void proc_temp_not_reach(u32 time, u16 temp, u16 set_temp, TEMP_NOT_REACH_ALARM_STRUCT *temp_not_reach_alarm_struct_1, u8 alarm_code){
	if(time > 5){
		if(temp < (set_temp - 5)*10){//如果15分鐘内未達到設定溫度-5攝氏度
			temp_not_reach_alarm_struct_1->temp_get_count++;
			if(temp_not_reach_alarm_struct_1->temp_get_count >5){
				temp_not_reach_alarm_struct_1->temp_get_count = 0;
			}
		}
		else{
			temp_not_reach_alarm_struct_1->temp_get_count = 0;
		}											
	}		
}

void proc_temp_not_reach_b(u32 time, u16 temp, u16 set_temp, u8 *alarm_count, u8 alarm_code){
	if(time > 5){
		if(temp < (set_temp - 5)*10){//如果15分鐘内未達到設定溫度-5攝氏度
			(*alarm_count)++;
			if(*alarm_count > 5){
				*alarm_count = 0;
			}
		}
		else{
			*alarm_count = 0;
		}											
	}		
}
           

函數調用

proc_temp_not_reach(time, temp, set_temp, &temp_not_reach_alarm_struct, 90);
		proc_temp_not_reach_b(time, temp, set_temp, &alarm_count, 91);
           

這樣可以實作 不用變量調用 同一個累加函數的問題。

繼續閱讀