Dadurch bleiben auch die systemnahen Möglichkeiten von C und die mögliche Laufzeiteffizienz erhalten.
Daß C++ alles erlaubt, was auch in C üblich ist, heißt aber nicht, daß dies auch sinnvollerweise so verwendet werden soll. Insbesondere wird in C der Präprozessor wesentlich intensiver für Makros genutzt, als typischerweise in C++. Dies kommt daher, daß er eigentlich sehr leistungsfähig ist und viele Programmiererleichterungen ermöglicht, die in C++ aber wesentlich eleganter über die eigentliche Sprachsyntax geschaffen werden. Da die entsprechenden C++-Konstruktionen nicht nur durch Textersatz vor dem Kompilieren greifen, sondern dem Compiler selbst bekannt sind, sind wesentlich sichereres Entwickeln der Quelltexte und höhere Effizienz des erzeugten Codes möglich.