Как правельно проинициализировать переменную?

 
Есть переменная (а), может принимать значения 1 и 0. Не могу я ее правельно проинициализировать чтобы, было так... при определенныйх условиях "а" становится равна 1, и надо чтобы она всегда оставалась 1 пока ей не присвоется значение 0. Сейчас происходит следующее. При входящем тике, "а" присваевается еденица, а при след тике "а" обнуляется... Вот под какую переменную надо заточить "а" чтоб состояние сохранялось?
 
static int a=0;
 
Наверное, не так.
Дело не в типе переменной. Её просто надо объявить на глобальном уровне (за пределами функций). Тогда её значение будет сохраняться последним достигнутым.
 
static означает, что хотя и переменная объявлена на локалном уравне, память под ней находится не в стеке, а в сегменте данных. С другими словами - она создается только раз, а не по прихода каждого нового тика (вызова start)
 
спасибо. попробую оба варианта.
 
ну да. и оба будут работать с этой позиции одинаково...