Смотрел я чьи-то исходники и наткнулся на это:
struct
{
bool btn_state: 1;
bool btn_flag: 1;
bool hold_flag: 1;
bool counter_flag: 1;
bool isHolded_f: 1;
bool isRelease_f: 1;
bool isPress_f: 1;
bool step_flag: 1;
bool oneClick_f: 1;
bool isOne_f: 1;
} fl;
fl flags;
// ........
boolean GButton::isPress() {
if (_tickMode) GButton::tick();
if (flags.isPress_f) {
flags.isPress_f = false;
return true;
} else return false;
}
boolean GButton::isRelease() {
if (_tickMode) GButton::tick();
if (flags.isRelease_f) {
flags.isRelease_f = false;
return true;
} else return false;
}
boolean GButton::isClick() {
if (_tickMode) GButton::tick();
if (flags.isOne_f) {
flags.isOne_f = false;
return true;
} else return false;
}
boolean GButton::isHolded() {
if (_tickMode) GButton::tick();
if (flags.isHolded_f) {
flags.isHolded_f = false;
return true;
} else return false;
}
Код абсолютно одинаков, только разные названия переменных и функций.
Стоит ли сокращать код? И как?
Еще покопал проект и увидел, что в главном файле очень много макросов. Мне кажется, их нужно вынести в отдельный файл.