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

m
int.
m (int.)
m (int.)
 
=== Bajty i słowa ===
Wiesz zapewne, że podstawową jednostką danych jest bit, który może mieć wartość 0 lub 1. Kilka kolejnych bitów <ref>Standard wymaga aby było ich co najmniej 8 i liczba bitów w bajcie w konkretnej implementacji jest określona przez makro CHAR_BIT zdefiniowane w pliku nagłówkowym limits.h</ref> stanowi bajt (dla skupienia uwagi, przyjmijmy, że bajt składa się z 8 bitów). Często typ short ma wielkość dwóch bajtów i wówczas pojawia się pytanie w jaki sposób są one zapisane w pamięci - czy najpierw ten bardziej znaczący - '''big-endian''', czy najpierw ten mniej znaczący - '''little-endian'''.
 
Skąd takie nazwy? Otóż pochodzą one z książki ''Podróże Guliwera'', w której liliputy kłóciły się o stronę, od której należy rozbijać jajko na twardo. Jedni uważali, że trzeba je rozbijać od grubszego końca (big-endian) a drudzy, że od cieńszego (little-endian). Nazwy te są o tyle trafne, że w wypadku procesorów wybór kolejności bajtów jest sprawą czysto polityczną, która jest technicznie neutralna.
 
Pod Uniksami są w osobnej bibliotece matematycznej libm w wersji :
* statycznej (zwykle /usr/lib/libm.a ) i pliku nagłówkowym math.h ( zwykle /usr/include/math.h ) <ref>[http://www.network-theory.co.uk/docs/gccintro/gccintro_17.html An Introduction to GCC - for the GNU compilers gcc and g++. 2.7 Linking with external libraries]</ref>
* ladowanej dynamicznie ( /usr/lib/libm.so )
 
6580

edycji