This document is not available in English version.
Informacje o GCC/G++
Kompilatory GCC (język C) i G++ (język C++) są dostępne pod systemy
operacyjne Dos, Windows, Linux i wiele innych. Więcej informacji można
znaleźć na stronie projektu:
http://gcc.gnu.org/.
W przypadku Linuxa znaleźć je można
we wszystkich popularnych obecnie dystrybucjach.
DJGPP
Pakiet DJGPP jest darmowym kompilatorem C/C++ dla DOS/Windows
opartym na GCC.
Więcej informacji na jego temat można znaleźć na stronie projektu:
http://www.delorie.com/djgpp/
Potrzebne pliki
Pliki można znaleźć w dziale "Przydatne zasoby"
Instalacja DJGPP w systemie DOS
- Ściągnij wymienione wyżej pliki.
- Utwórz katalog w którym ma zostać zainstalowane DJGPP (np. c:\djgpp).
- Odpakuj wszystkie pliki *.zip.
- Do poprawnego działania pakietu
potrzebne jest ustawienie wartości zmiennej DJGPP
(np. w autoexec.bat), wskazuje ona
na plik konfiguracyjny (zazwyczaj C:/DJGPP/DJGPP.ENV),
należy pamiętać aby w wartości zmiennej używać znaków / zamiast
\.
- Do zmiennej PATH dodaj katalog zawierający pliki wykonywalne
(zazwyczaj C:\DJGPP\BIN)
Ważna różnica pomiędzy DJGPP a GCC
W napisie formatującym w funkcji printf DJGPP akceptuje duże litery zamiast małych,
np. można użyć %D zamiast %d lub %U w miejsce %u.
Fragment programu:
...
int i = 13;
printf("%D", i);
...
powoduje w DJGPP wypisanie na standardowe wyjście:
13
a w GCC/G++:
%D
Dlatego należy stosować konstrukcję:
...
int i = 13;
printf("%d", i);
...
która spowoduje wypisanie w obu przypadkach liczby 13.
Strumienie w C++
Poprzednie wersje kompilatorów języka C++ miały bardzo nieefektywną
implementację strumieni. Fakt ten powodował, że w przypadku wielu zadań
nie wolno było ich używać, gdyż inaczej rozwiązania nie mieściły się w
limicie czasowym. W najnowszych kompilatorach języka C++ (od wersji 3.4),
efektywność strumieni znacznie się poprawiła, co pozwala na używanie ich
w rozwiązaniach zadań. W celu skorzystania ze strumieni,
należy na samym
początku programów wyłączać synchronizację wejścia/wyjścia
przy użyciu ios_base::sync_with_stdio(0);.
Przykładowe programy można znaleźć w sekcji Przykłady