A végletekig leegyszerűsítve, sarkítva lehetne azt állítani, hogy gyorsabb, de egyrészt a különbség a gyakorlatban jobbára észrevehetetlen, másrészt pedig ez nagyon nem ilyen egyszerű. Méghozzá annyira nem, hogy nem is fogok itt belemenni.
A rövid, tömör, gyakorlati válaszom a kérdésedre a következő: lényegtelen.
A kérdés rossz, mert programokat nem lehet a nyelv alapján gyorsnak/lassúnak bélyegezni. Tudok példát mindkettőre (a te kérdésed szerint), hogy gyorsabb C/C++ program a C++/C-ben írtnál.
Pl. qsort(C) vs sort(C++) kiderül, hogy a C++ gyorsabb. Persze mert másik algoritmust használ a rendezéshez. Gratulálok az összehasonlításhoz...
Másik példa A Linux kernel átrakása C++-ra. A kivételek feltételezése minden függvényhíváson jelentős visszaesést jelentett a kernelnek. Ma erre persze az a válasz, hogy van noexcept kulcsszó vagy a fordítónak kapcsolója “-fno-exceptions".
Nagyon szívesen kifejtem neked hogy az egyező C kód (azonos compilernél) miért nem fut egyértelműen gyorsabban mint a C++ kód, de bonyolultabb a dolog mint egy kijelentés és nem fér bele pár kommentbe.
De a lényeg: azonos algoritmusokkal a futásidő azonos.
Emberek! nem nyelv, hanem
COMPILER + OPTIMALIZÁCIÓ
függő, hogy ki mivel hogyan fut gyorsabban!
# 7/7 Időpont tegnap 23:14
Azért a nyelv is belejátszhat rendesen. Nem C/C++ esetében de egy C++ vs. Java esetében már egyértelműen előbbinek van előnye.
Az más kérdés, hogy igen, egy nagyon szarul megírt c++ program lassabb lesz, mint egy jól megírt java.
Önmagában az hogy a C vagy a C++ a gyorsabb értelmetlen kérdés, két azonos kód közel azonos sebességgel fog lefutni, a g++ fordító már rég kinőtte magát annyira hogy ne legyen különbség, régen ez nem így volt.
Viszont itt fontos megjegyezni hogy aki a C++-t választja a C helyett, az általában azért teszi mert a programját az objektum orientált metodológiára építve akarja megírni és az lényegesen lassabb és kevésbé memória hatékonyabb tud lenni ha rosszul van megtervezve. A C++-nak sok buktatója van, amikre mind csak egy nagyon tapasztalt programozó tud figyelni. C-ben nincs ilyen probléma.
Egy jól megírt C++ program azonos algoritmusnál nem fog észrevehetőn rosszabbul teljesíteni mint a C-s ekvivalense.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!