if and else without braces
If your definition of EOK is as follows: #define EOK 0; then it would cause this type of error, because it forcibly terminates the if-statement before the else is reached, making it an else without a matching if. The compiler sees this code after macro replacement: if(GetSomething()) error = 0;; else