Pa mislim da sam dodao uslov, ako je maximum brzine ipak bitan za projekat - u modernim kompajlerima je uvek moguce neke funkcije implementirati u asembleru ako je brzina kritican parametar - ovo je moguce raditi i u C++ i u C.
U poslu koji ja radim (multimedia compression) obicno se prvo odradi potpuno cist ANSI-C (ili ISO C++) kod, koji se bez problema kompajlira na svim sistemima. Posle optimizacije kvaliteta i ciscenja gresaka se kod "zamrzne" - a onda se rade posebne verzije za target CPU, uz primenu sve sile optimizacija (MMX/SSE/SSEII matematicke funkcije i vektorska algebra)
Za DSP cipove se obicno svaka kriticna funkcija optimizuje asemblerski, dok se ne postigne real-time execution na najjeftinijem DSP-u.
Moj izbor je obicno ANSI-C sa Intel SPL bibliotekom i malo __inline assemblera. C++ obicno ne koristim, ali cak i da ga koristim ne verujem da bi doslo do nekog znacajnog gubitka u performansama, jer bih izbegavao virtuelne funkcije koje su bottleneck u C++ programima.
DSP portovanje obicno ne radim, kolega iz partnerske firme je portovao neki moj projekat na TriMedia platformu i mislim da je kod ostao cist ANSI-C, sa eventualno malih kozmetickih promena (bio je problem kod nekog zaokruzivanja) - Za takve stvari bih ipak preporucio cist C, jer jos ima DSP firmi koje imaju slabe C++ kompajlere.