C/Przenośność programów: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Nie podano opisu zmian
Linia 21:
[[C/Zaawansowane_operacje_matematyczne#Prezentacja_liczb_rzeczywistych_w_pami.C4.99ci_komputera|Rozmiar poszczególnych typów danych]] (np. int, short czy long) jest różna na różnych platformach, gdyż nie jest definiowany w sztywny sposób (poza typem char, który zawsze zajmuje 1 bajt), jak np. "long int zawsze powinien mieć 64 bity" (takie określenie wiązałoby się z wyżej opisanymi trudnościami), lecz w na zasadzie zależności typu "long powinien być nie krótszy niż int", "short nie powinien być dłuższy od int". Pierwsza standaryzacja języka C zakładała, że typ int będzie miał taki rozmiar, jak domyślna długość liczb całkowitych na danym komputerze, natomiast modyfikatory short oraz long zmieniały długość tego typu tylko wtedy, gdy dana maszyna obsługiwała typy o mniejszej lub większej długości<ref>Dokładniejszy opis rozmiarów dostępny jest w rozdziale [[C/Składnia#Typy_danych|Składnia]].</ref>.
 
Z tego powodu, nigdy nie zakładaj, że dany typ będzie miał określony rozmiar. Jeżeli potrzebujesz [[C/Zmienne#int|typu całkowitego]] o konkretnym rozmiarze (a dokładnej konkretnej liczbie bitów wartości) możesz skorzystać z pliku nagłówkowego :
* stdint.h
* [[C/inttypes.h|inttypes.h]]
* własny plik nagłówkowy
i używać na przykład:
* int8_t
* int16_t
* int32_t
* int64_t
 
zamiast int