Nope! It's a good solution. The else is bound to the evaluation of the condition it's "elsing", since this evaluation happens before the action, the else will not be triggered.
Using a boolean instead of a global number is not equivalent though it might be a better solution in this case. But we can't say without seeing the big picture.
I would guess that you probably want to use a boolean for the semantic (meaning) of a 0/1 switch, but to me it's more because c2 doesn't provide boolean types for globals than for a good design reason.
(To counter c2's flaw, I usually declare two global constant TRUE = 1 and FALSE = 0 and use that in expressions)