Mam kompilator dev c++ 4.9.9.2 i chciałbym się dowiedzieć czy mogę podglądnąć np. bibliotekę Cstring lub każdą inną? A w niej zobaczyć jak zostały napisane w tym jezyku np. funkcje strchr, strcpy itd. Czy zwykły użytkownik nie może zobaczyć jaki kod mają funkcje i dopisać coś do nich, lub po analizować je?
Jeśli jest to możliwe, to proszę o podanie sposobu w jaki sposób.
Można, ale czy musi być to dev-cpp? :( Nie może być np. Code::Blocks? Wejdź w folder kompilatora do bibliotek jakoś.
Macron napisał(a)
Można, ale czy musi być to dev-cpp? :( Nie może być np. Code::Blocks?
A co dev jest taki zły? Code::Blocks ja nie znam. Nigdy w nim jeszcze nie pisałem. Poza tym ja jestem amatorem a nie programistą :D.
A ten Code::Blocks jest dobry i prosty w obsłudze? Być może powinienem się przesiąść :D.
Macron napisał(a)
Wejdź w folder kompilatora do bibliotek jakoś.
Wchodziłem już w dev do folderu lib i są tam pliki o dziwnych rozszerzeniach, których nie wiem jak otworzyć.
Nie lib, tylko include.
Minusy DevCPP
- Staaaaary kompilator
- Zbuuugowany debugger
Code::Blocks: - Uczy dobrych nawyków
- Stosunkowo prosty, ma fajne pluginy(Typu formatowanie kodu w 9 stylach itp.)
Minusy Code::Blocks'a: - Brak języka polskiego
PS. W CB dołaczaj cstdlib, żeby mieć system();
Macron napisał(a)
Nie lib, tylko include.
Już kiedyś buszowałem po tym folderze include, jednak co mnie odstraszyło to duży poziom tego kodu. Dziś też nie umiem się w tym odnaleźć. Wchodzę w plik string albo stdlib (dla funkcji rand) i nic tam nie rozumiem. Nie mój poziom :/
Nie ma nigdzie łatwiej napisanych (bardziej zrozumiale) tych funkcji np. rand, lub innych? Bo jestem ciekawy jak ona losuje zmienne i jak inne działają funkcje np. strchr, strcpy .
Niestety, rand nie ma, a string znów, to tylko ogólnie #define basic_string string + nagłówki.... Lepiej samemu napisać, i mieć pojęcie :P
Dobra dzięki Macron. Trochę mi rozjaśniłeś sytuację.
Tak jeszcze zapytam znasz algorytm według którego funkcja rand działa.
Ja widzę tę funkcję tak:
Wiem, że podajemy przedział losowania np. od 0 do 6.
Następnie co robimy w tym algorytmie to adresujemy tablicę tak by pierwszy jej element miał wartość 0 a ostatni 6.
Potem potrzebne będzie coś co jest ruchome i przeskakuje po tych elementach tablicy i ustawia się na odpowiednim miejscu. Hm? Może sekundy, albo minuty pobrane z zegaru systemu?
Tak działa rand w przybliżeniu? Dobrze myślę? Bo oczywiście tablica dynamiczna będzie potrzebna do regulowania wielkości, bo różne mogą być przedziały do losowania. Różne zabezpieczenia też trzeba ustawić.
Poza wszystkim, Dev-C++ i Code::Blocks to IDE, a nie kompilatory - korzystają na Windows głównie z MinGW (port GCC na Windows).
Źródła biblioteki standardowej C możesz ściągnąć np z gnu.org: GNU libc:
http://www.gnu.org/software/libc/
http://ftp.gnu.org/gnu/glibc/
Mi w code::blocks nie chwyta definicji(pisze, że nie znaleziono) tylko deklaracje:
_CRTIMP int __cdecl __MINGW_NOTHROW rand (void);
PS. Wiecie, że w C++ bez żadnych nagłówków NULL nie istnieje? Dopiero iostream go dodaje.