Кстати, насчет С++ для F103C8. "Ентот сраный С++"
умудряется вытворять вот такую вот штукенцию: несмотря на довольно сложную иерархию шаблонных классов и методов, на выходе в ассемблерном листинге получается очень компактный код. То есть, фактически, одна строчка "плюсового" кода (слева) преобразуется в одну строчку ассемблерного кода (справа). Ну и плюс несколько ассемблерных строчек подготовительного кода, который заносит в регистры необходимые числа.
Таким образом, в подобных операциях эффективность "плюсового" компилятора не уступает эффективности сишного компилятора.