Вот такой код
bool flag = true;
void Render()
{
while(not_exit)
{
do_something();
keyboard();
if(flag)
do_one_time();
}
}
void do_one_time()
{
...
flag = false;
}
void keyboard()
{
if(key == f1)
flag = true;
if(key==f2)
{
...
}
...
}
void main()
{
Init();
Render();
Release();
}
Нужно выполнить do_one_time лишь раз, конечно для этого можно завести глобальную переменную flag и в конце этой функции поменять его на false, но в функции keyboard идет проверка нажатия на клавиши f1 и флаг flag станет снова true, но в этом случае функция опять будет вызвана, а мне нужно ее вызвать в конце выполнения нажатия на другую клавишу f2, как быть?