У меня есть ситуация, когда b () вызывает функцию, которая выполняет некоторую работу, которая мне не нужна, если я хочу вернуться к a ().Я хочу предотвратить это, когда я вызываю (), и минимизировать время, необходимое для запуска ()
В основном такая ситуация произойдет, если произойдет INTERRUPT_FOR_B
и очень короткое время спустяINTERRUPT_FOR_A
случается, и если b()
имеет более длительное время выполнения.
Вам необходимо тщательно обдумать эту ситуацию и выяснить вероятность того, что это произойдет, прежде чем проводить преждевременную оптимизацию.
Но,если вы хотите пойти дальше, вы можете иметь несколько контрольных точек в функции b()
, чтобы увидеть, истинно ли run_A
.
например,
void b(void)
{
// some code.
if (run_A == true) return;
// some code
if (run_A == true) return;
// etc
}
Обратите внимание, что вам нужно правильно проанализировать и протестировать функцию b
со всеми путями возврата, чтобы убедиться, что эта функция работает правильно во всех случаях.