C и C++ вообще-то два разных языка. Кстати, оба позволяют с легкостью отстрелить себе ногу, или что-то поважнее.
Как-то разбирался с чужим проектом в котором часть была написана на C другая на C++. Так там всем известные сейчас (тогда еще толком реализации не было) генерики формировались препроцессором в цикле. Вот убиться можно было!!!!!! Методы реализованы на C. Препроцессор генерировал C++.
GCC все это хавал.
Тут уже получается просто пофиг где какая переменная описана. Как в анекдоте "... если у меня руки вбоки, то мне плевать на какую сторону у тебя надета тюбетейка..."
Я это к чему? На любом языке можно написать красиво и понятно, но можно и запутать все насмерть, так что никто не разберется!