Diskuze: C++ a C, Jednočipy
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Ptal jsem se na to, na co jsi odpověděl, děkuji, ale raději bych
viděl víc názorů,
Omlouvám se za to "š/ž" pane gramatiku
Člověk co psal základy C++ napsal, že programy psané pro C jsou funkční i
pro C++.
Nejsem gramatik, ale tohle je celkem "špatná" chyba.
Tak si prostuduj syntaxe obou jazyků a porovnej si je.
Ok, děkuji. Ještě jedna otázka jen tak pro zajímavost, jak je těžší
přecházet z C do C++ nebo z C++ do C?
C a C++ mají syntaxi stejnou, rozdíl je v tom, že v C++ je toho spousta navíc. Kromě toho že C++ má třídy, tedy se v něm na rozdíl od C dá programovat relatovně slušně objektově (jen ne tak pohodlně jako například v Javě nebo C#), je v něm obrovská spousta dalších užitečných věcí, které v C nejsou (reference, výjimky, genericita, přetěžování operátorů...). Co se týká toho přechodu, z C++ do C by to byl problém, protože by ti v C chyběla spousta věcí, na které bys byl z C++ zvyklý. Obráceně to v podstatě ani není přechod, v C++ se dá programovat naprosto stejně jako v C a je pravda že program napsaný v C bude (až na výjimky) fungovat i v C++, pokud tedy přecházíš z C do C++, pouze získáváš možnost začít používat nové funkce, které se musíš nejdříve naučit. Rozhodně není nutné učit se v C++ všechno, je to velmi obsáhlý jazyk a všechny jeho funkce stejně nikdy nevyužiješ.
JInak ještě nevím jak je to s C++ na mikročipech. To že je OS napsané v
čistém C a níž má svoje důvody. C++ obsahuje konstrukce jako je
například přetěžování funkcí (tedy že pokaždé vrací jiný typ), což
v čistém C nejde. Aby C++ interně poznalo, jakou funkci má zavolat, tak si
před jejich název dává prefixy (říká se tomu i nějak odborně ale nevím
teď jak ). Což znamená
že máš li dvě funkce int funkce(); void funkce(); tak to po
přeložení do zdrojáku budou funkce _in_funkce();_vo_funkce(); (pouze
příklad, záleží na kompilátoru). Takže neznáš skutečný název funkce,
která se má zavolat, v případě že bys chtěl C++ pracovat s ASM a volat
tyto funkce. Čisté C dokáže přetížit pouze počet vstupních parametrů,
ale návratovou hodnotu ne, takže je stále jen jedna funkce, takže
kompilátor nemusí interně dávat žádné prefixy. Takže jeslti máš v C
funkce void funkce() tak skutečně můžeš z ASM tuto funkci zavolat, na
rozdíl od C++.
http://en.wikipedia.org/…ame_mangling#…
Tohle je ono
Děkuji všem za odpovědi.
Devbook opět nezklamal.
Tak já kouknu na C a Desktop (respektive C++) bude muset počkat. Vidím to
tak, že dám na sdraca a na C++ se kouknu jen zběžně.. budu pokračovat v C#
)
Stejně se plánuji učit další jazyky... (minimálně HTML/CSS a PHP)
Zobrazeno 9 zpráv z 9.