Qubc, При компиляции выставляйте максимальный уровень предупреждений, тогда и ошибки/предупреждения появятся. Некоторые все предупреждения переводят в разряд ошибок, тогда и собираться перестанет пока не исправите. В вашем случае локальная переменная перекрывает глобальную, о чем, например, gcc предупреждает при соответствующих параметрах.
Для gcc я обычно включаю -Wall -Wextra, обязательно -std=XXX чтоб компилятор знал какой стандарт вы пытаетесь использовать, можно еще -pedantic