When in C mode, auto-indent has some glitches:
(1) Preprocessor lines (starting with '#') do not determine indentation on following lines (indent level from lines BEFORE the preprocessor line propgates AFTER the preprocessor line).
(2) Closing braces of empty blocks with one or more empty lines are not un-indented as they are if the block is non-empty, or there no empty lines between the braces.
You can find more detailed info here:
Customer support service by UserEcho