Witam.
Otóż za dokładnie nie wiem jak odróżnić biblioteki C++ a C
lub na odwrót, proszę o szybką odpowiedź.
Z góry dziękuję.
Witam.
Otóż za dokładnie nie wiem jak odróżnić biblioteki C++ a C
lub na odwrót, proszę o szybką odpowiedź.
Z góry dziękuję.
Trochę dziwne pytanie. To jakbym miał zapytać “skąd mam wiedzieć czy mówie po niemiecku czy angielsku”
Odnośnie bibliotek: przyjęto się, że biblioteki standardowe w C++ nie będą kończyły się rozszerzeniem .h (w przeciwieństwie do C)
I różnice między C a C++ dobrze opisuje angielska wikipedia: http://en.wikipedia.org/wiki/Compatibil … nd_C%2B%2B
Mały edit:
A na pytanie “skąd mam wiedzieć w czym pisze” najłatwiej odpowiedzieć “sprawdź jakiego kompilatora używasz”
Używasz kompilatora C++ - piszesz w C++. C++ “dziedziczy” cechy C, więc na 90% kod C skompiluje się w C++ (choć bywają niekompatybilności, o których wspomniał hubciorz), ale kompilator potraktuje ten kod jak C++.
Chodzi oto że kiedyś skompilowałem to:
#include
#include
#include
...
gdyż chciałem użyć funkcji otwarcia, modernizacji i zamknięcia plików z stdio i od razu dodałem bibliotekę stdlib skompilowałem g++ i działało.
I teraz pytam skąd po pliku mam rozpoznać czy to C czy C++.
np.
W C++ często ludzie korzystają z bibliotek GL,SDL i WinAppi,
teraz pojawiają mi się pytania:
1.Czy mogę ich użyć w C jeśli kończą się na .h ?
2.C++ obsługuje wszystkie biblioteki C i przy tym C++ ?
3.Czemu nie znalazłem plików(bibliotek) kończących się na .hpp w include w pakiecie MinGW ?
a do kompilacji plików:
C używam gcc
C++ używam g++
– Dodane 07.09.2013 (So) 20:02 –
Dzięki Razi nie spojrzałem na odp. tylko pisałem tom wykreślam 2 pytanie.
Ten kod co dałeś to C++ - używasz iostream który jest dopiero w C++. Ale pozostałe 2 biblioteki w C++ poprawnie nazywają się cstdio i cstdlib, nie stdio.h i stdlib.h.
Ja zawsze piszę w C++ i używam cstdio - scanf i printf są o wiele potężniejsze (np. własny delimiter w scanfie pozwalający czytać wiele linii za jednym zamachem) i wygodniejsze niż cin i cout.
Tak samo spod C++ wywołasz (chyba) każdą funkcję z C, bo używa tego samego ABI (interfejs binarny, specyficzny dla każdego kompilatora, więc między kompilatorami mogą być problemy z kompatybilnością).