Deklarace paměti

Při programování v nějakém vysokoúrovňovém jazyce, jako je třeba C, se proměnné deklarují datovým typem. Tyto datové typy mohou být např. celá čísla ( integer) nebo znaky ( character) nebo jiné, třeba i uživatelem definované struktury. Pro tyto proměnné je nezbytné alokovat dostatečný prostor, což pro celé číslo může být 4 bajty a pro znak třeba jeden jediný
bajt. To znamená, že celé číslo má 32 bitů místa (4 294 967 296 možných hodnot), zatímco znak má pouhých 8 bitů místa (256 možných hodnot).
Proměnné mohou být deklarované také v poli. Pole ( array) je seznam N elementů daného datového typu. Takže v nejjednodušším případě je desetiznakové pole prostě 10 znaků sousedících vedle sebe v paměti. Někdy se polím říká buffer a poli znaků řetězec ( string). Protože je kopírování velkých kusů paměti výpočetně náročné, používají se pointery ( ukazatele) pro odkazovaní na buffer. Pointery se v Céčku deklarují připojením hvězdičky před jméno proměnné; zde je pár příkladů deklarací proměnných:


int integer_variable;
char character_variable;
char character_array[10];
char *buffer_pointer;



Důležitý detail vztahující se k paměti na procesorech typu x86 je pořadí bajtů v 4bajtovém slovu. Toto řazení je známé pod pojmem little endian, které říká, že nejméně signifikantní (významný) bajt je ten první. Znamená to, že bajty slova, jakým je třeba celé číslo nebo pointer, jsou uloženy v převráceném pořadí. Hexadecimální hodnota 0x12345678 v kódování little endian je v paměti uložena jako 0x78 0x56 0x34 0x12. Ačkoliv kompilátory pro HLL, jakým je třeba C, automaticky bajty řadí, je důležité si toto zapamatovat.