[ NrmMyth @ 21.08.2005. 19:38 ] @
| Slucajem okolnosti dosao sam do jednoga zakljucka recite mi jeli to tocno.
Code: 16-bitni sustavi:
char - 8 bitova
int - 16 bitova
long - 32 bita
long long - 64 bita
32-bitni sustavi:
char - 8 bitova
int - 32 bita
long - 32 bita
long long - 64 bita
64-bitni sustavi:
char - 8 bitova
int - 64 bita
long -64 bita
long long - 64 bita
Onda ??? |
[ Dragi Tata @ 21.08.2005. 22:36 ] @
Ukratko - nije tačno. Takva pravila ne postoje i sve zavisi od OS-a i kompajlera.
[ X Files @ 22.08.2005. 05:14 ] @
U praksi, kada ti treba podatak o velicini, mozes ga izmeriti operatorom:
sizeof(). Dakle: sizeof(int), itd, ...
[ itf @ 22.08.2005. 09:37 ] @
Jedino što je varijabilno jest int. Negdje je to 2 (short varijanta), a negdje 4 bajta (long varijanta). Uglavnom, na novijim procesorima i prevoditeljima je 4 bajta.
Veličina pokazivača je drukčija u ovisnosti o procesoru i OS-u. U 32 bitnim sistemima imas memorijski raspon do 2e32 adresa, pa je velicina pokazivaca 4 bajta (4 * 8 bita). Na 64 bitnim procesorima velicina pokazivaca je 8 bajtova (8 * 8).
To je jedino što treba paziti.
[Ovu poruku je menjao itf dana 22.08.2005. u 10:43 GMT+1]
[ tosa @ 22.08.2005. 10:26 ] @
Nije to sve, u praksi i druge stvari mogu da se razlikuju kao npr. velicina
karaktera, posebno ako radis i unicode verziju aplikacije i slicno.
Najbolje je napraviti sloj apstrakcije prema osnovnim tipovima ako zelis da ti
program radi isto na mnogo platformi, a ako imas predznanje za koje platforme
radis i sta, samo budi (jako) oprezan ;)
[ netoff @ 22.08.2005. 10:47 ] @
Ne znam koliko to ima veze sa pitanjem, ali mislim da sam negde pročitao da je obavezno da char bude veličine jednog bajta, a da taj jedan bajt može da ima promenjivu veličinu u zavisnosti od arhitekture. Pa tako postoje primeri kompajlera kod kojih je bajt 64-bitni.
[ itf @ 22.08.2005. 10:59 ] @
Ma nemate se šta o tome uopće brinuti. Nije ovo kameno doba i Assembler (iako mu svaka čast). OS ima automatski management memorije i na vama je samo da uživate. Koliko što u memoriji zauzima je zaista najmanje bitno, osim što je stvar neke "kulture" ne alocirati višak memorije itd..
Zato bih se čak osvrnuo i na stariji C gdje se i dan-danas prilikom svakog petljanja sa memorijom korisiti operator sizeof.. Npr. malloc(n * sizeof(int)) pa koliko god da taj int bio itd..
[ NrmMyth @ 24.08.2005. 21:16 ] @
Hvala svima, bili ste vise nego korisni.
[ dejandj @ 25.08.2005. 17:28 ] @
U "principu" zakljucak je (bio) tacan a u praksi ni slucajno...
Ako hoces da budes siguran koristi CDF ili ti Common Data Format koji nosi sa sobom info koliko je sta...
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.