• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

spotykanie zapisu C\C++

Object Storage Arubacloud
+2 głosów
470 wizyt
pytanie zadane 30 listopada 2015 w Rozwój zawodowy, nauka, praca przez niezalogowany
Hej, chciałbym się dowiedzieć dlaczego można spotkać zapis C\C++ skoro to całkowicie różne języki. Dlaczego nie zrobią C++\C# albo C\C# przecież to z rodziny C.

2 odpowiedzi

+8 głosów
odpowiedź 30 listopada 2015 przez Sebastian Fojcik Nałogowiec (43,040 p.)
edycja 8 grudnia 2015 przez Sebastian Fojcik
 
Najlepsza

C++ jest wstecznie kompatybilny z C. Po dołączeniu bibliotek standardowych z języka C (rozpoczynają cię one z małej ltiery 'c' <cmath> <cstdlib> itp.). Prawdę mówiąc C++ jest po prostu rozwiniętą wersją C. Nic nie zostało usunięte z C++ co było w C, aby zachować kompatybilność.
(Nie można tego powiedzieć o C#, w którym nie ma, np. wskaźników. Zastąpiły je referencje)

Dzięki temu programy napisane w C mogą być kompilowane przez kompilatory C++ (po drobnych poprawkach). C++ został wzbogacony o obiektowość, której nie posiada język C.
Dlatego jeśli kod źródłowy ma przypis: C/C++ oznacza to, że najprawdopodobniej został napisany w C, ale kompilator C++ też sobie da z nim radę.

Nie może istnieć C++/C# ponieważ w C# wszystko musi być w klasie. W C# nie może istnieć funkcja poza klasą - w zakresie globalnym (taka jak int main w C++). Ponieważ w C# wszystko jest obiektem, to nie jest zachowana kompatybilność z C++.

O C/C# już nawet nie wspominam, bo C nie posiada obiektowości, a C# jest tylko obiektowy.

Rodzina literki "C" oznacza, że języki z tej rodziny mają bardzo podobną składnię. To wszystko ;-)

 

PS. Przy kompilowaniu kodu napisanego w C przez kompilator C++ należy pamiętać o zamianie bibliotek z języka C, do ich wersji przygotowanych specjalnie pod C++,

C C++
<stdio.h> <cstdio>
<stdlib.h> <cstdlib>
<math.h> <cmath>

Używanie bibliotek z dopiskiem ".h" w C++ jest nieeleganckie, bo w standardzie zapisano, że standardowe biblioteki C++ nie powinny ich zawierać. Jeśli coś ma ".h", to znaczy, że jest z C lub nie należy do standardowych bibliotek C++ (np. <conio.h> lub <Windows.h>)
Pozdrawiam :-)

komentarz 30 listopada 2015 przez niezalogowany
Się Pan rozpisał. Bardzo mnie to cieszy, gdyż wszelkie pytania jakie mogły paść zostały tutaj od razu zawarte. Dziękuję za szczegółową odpowiedź. :)
komentarz 30 listopada 2015 przez Patrycjerz Mędrzec (192,320 p.)

Świetna odpowiedź - łapencja leci! yes

3
komentarz 30 listopada 2015 przez adrian17 Ekspert (344,860 p.)

Nic nie zostało usunięte z C++ co było w C, aby zachować kompatybilność.

Przeciwnie, nie tylko nie są kompatybilne, ale najlepiej traktować je jak zupełnie różne języki, tylko wystarczająco zgodne aby ułatwić portowanie kodu. Pominę już zmiany z nowszych wersji języka, jak zamiana znaczenia auto czy usunięcie register. Prosty przykład niekompatybilnego kodu, który jest bardzo powszechny w C:

void * p = 0;
int * i = p;

C# pod względem "kompatybilności" jest w tym samym stopniu "w rodzinie C" jak i Java, najlepiej w ogóle zignorować że w nazwie jest litera C (której na początku projektowania języka w ogóle w nazwie nie było). No i ma wskaźniki, tylko kod ich używający trzeba owinąć blokiem unsafe.

+1 głos
odpowiedź 30 listopada 2015 przez andrzej_bl Bywalec (2,390 p.)
C++ jest bezpośrednim następcą języka C i jest z nim zgodny w dół. To znaczy, jeżeli użyjesz kompilatora języka C++ do kompilacji kodu napisanego w C to wszystko będzie działać poprawnie. (W drugą stronę już nie). Z językiem  C#  w ogóle taki numer nie przejdzie.

Podobne pytania

0 głosów
2 odpowiedzi 512 wizyt
0 głosów
0 odpowiedzi 396 wizyt
pytanie zadane 29 listopada 2020 w C i C++ przez jakis111 Nowicjusz (210 p.)
0 głosów
1 odpowiedź 278 wizyt
pytanie zadane 21 września 2017 w C i C++ przez Ziebexiorex Nowicjusz (150 p.)

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...