Я все еще изучаю C для использования в микропроцессорах. В начале я использовал много глобальных переменных. Теперь я стараюсь избегать этого как можно больше, но для меня не всегда понятно, как это сделать.
Например, монитор батареи, в этом случае есть 4 функции, которым нужно прочитать или изменить переменную. У меня все эти функции используют переменную LowVoltage.
void Check_Voltage(){
checks current voltage against LowVoltage
}
void Menu_Voltage(){
a menu on the LCD screen to set the value of LowVoltage
}
void Save_LowVoltage(){
runs after the settings menu is finished to save LowVoltage to EEPROM
}
void Load_LowVoltage(){
reads EEPROM and sets LowVoltage at startup
}
- Check_Voltage() и Save_LowVoltage() должны читать LowVoltage.
- Load_LowVoltage() нужно написать LowVoltage.
- Menu_Voltage() должен читать и записывать LowVoltage.
Как я могу заставить это работать, не делая LowVoltage глобальным?? Нужно ли мне делать другую функцию для чтения или записи LowVoltage? Что-то вроде этого:
unsigned int Low_Voltage(short Get, unsigned int Value){
static unsigned int LowVoltage;
if(Get) return LowVoltage;
else LowVoltage= Value;
}
Или есть лучшие способы сделать это? Я думаю, должны быть :) Я недавно читал о структурах, но, честно говоря, я не совсем понимаю их, и я даже не уверен, что это поможет мне в таких случаях?