Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Augi
Založen: 28. 07. 2007 Příspěvky: 781 Bydliště: Čerčany
|
Zaslal: 11. květen 2008, 09:18:52 Předmět: |
|
|
Jojo, síťová reprezentace bývá málokdy totožná s reprezentací dat v paměti. |
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 14. květen 2008, 02:51:13 Předmět: |
|
|
Pavel napsal: |
Yossarian napsal: |
bool je podle me ekvivalentni s int, tudiz 4bajtovej. aspon ve VB urcite
jinak
kód: |
struct {
int a : 3;
int b : 5;
};
|
by melo zabirat 1 byte |
IMHO 4 byte - zarovna se to do velikosti INTu - tady bude asi 24 bitu neadresovatelnych. |
Toto je omyl, anebo minimálně celá velká část následné debaty, která na toto navázala, je pomýlená.
Ta struktura má skutečně 4 bajty, ale není to kvůli zarovnání. Zarovnání (ani "pack", jak někdo psal) s tím nemá co dělat. Jednoduše je tam založena proměnná typu int a ta má právě velikost 4 bajty. Když se tam napíše char:3 a char:5, bude to celé mít 1 bajt. U takových struktur, které mají 1 bajt, těžko můžete něco zarovnávat, když PC počítače umějí adresovat každý bajt přímo.
Jinak teda "bool je prevít, ten vám rozežere pračku"... VB = hell.
Systém zarovnání na PC navíc nejede na 4 bajty, ale na větší bloky. A je to čistě věc překladače, stejně jako velikost int. Přece když si autor překladače řekne, že int bude mít X, tak bude mít X. Mě osobně spíš mrzí to, že v běžných C překladačích se toto nedá vybrat v options. Sice by tím možná bylo zaděláno na totální chaos, ale když si převádím programy mezi různými platformami, spíš by mi vyhovovalo, aby to hlavně nějak fungovalo, než aby to bylo rychlé nebo co. Konkrétně třeba mám problém převést 32bit program na 8bit počítač, protože tam int nemá 32 bitů. Sice mít 32 bitů, je to drsně pomalé, ale apsoň by to skutečně bylo přenositelné, jak se u C tak často prázdně proklamuje... Samozřejmě, přejmenovat typy pomůže, ale 8bit překladač nějak vůbec nemá 32 a 64bitové typy... |
|
Návrat nahoru |
|
|
Pavel
Založen: 29. 07. 2007 Příspěvky: 54 Bydliště: Litovel
|
Zaslal: 14. květen 2008, 06:44:09 Předmět: |
|
|
Al napsal: |
Pavel napsal: |
IMHO 4 byte - zarovna se to do velikosti INTu |
Toto je omyl, anebo minimálně celá velká část následné debaty, která na toto navázala, je pomýlená.
Ta struktura má skutečně 4 bajty, ale není to kvůli zarovnání. Zarovnání (ani "pack", jak někdo psal) s tím nemá co dělat. Jednoduše je tam založena proměnná typu int a ta má právě velikost 4 bajty. |
Toto neni omyl, oba jsme to asi mysleli stejne. |
|
Návrat nahoru |
|
|
ladik-BigBoss
Založen: 28. 07. 2007 Příspěvky: 158
|
Zaslal: 14. květen 2008, 11:59:35 Předmět: |
|
|
pokud potrebujete prenositelnou velikost datovych typu pouzijte ty definovane v stdtypes.h
neni co resit |
|
Návrat nahoru |
|
|
Yossarian
Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 14. květen 2008, 13:02:29 Předmět: |
|
|
Al napsal: |
... když PC počítače umějí adresovat každý bajt přímo. |
to x86 umi. ale jak rychle? sse2 uz s tim ma problem.
mips ani alpha toto nedokazou, myslim ze problemy ma i arm.
stejne tak x64 architektura, tam potrebujes mit pamet urcitym zpusobem zarovnanou, kdyz mas integer na rozhrani 2 bloku, tak jeho cteni je pomerne casove narocne. nedavno jsem o tom cetl clanek, nicmene si nevzpomenu kde presne to bylo, jediny co jsem si dohledal je toto od ms:
http://msdn.microsoft.com/en-us/library/ms253949.aspx
edit: [flame]
btw, co je to PC pocitac? neni to dost redundantni vyjadreni (mimo to nepresne)? zrovna ty ses vecne chytrej jak radio, takze bys neco takovyho nemel ani z huby vypustit [/flame] |
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 14. květen 2008, 14:00:26 Předmět: |
|
|
Yoyo: Škoda, že taky ty nejsi chytrý jak rádio, teda Al Tomuto jevu se říká pleonasmus a u odborných termínů a zkratek se spíše toleruje, protože zlepšuje srozumitelnost. Tedy píšeme LED dioda a ne jen LED (LE dioda by bylo už zcela špatně) apod. Něco jiného je používat slova se stejným významem v běžné mluvě (hospitalizace v nemocnici, nejoptimálnější ideál apod. ) _________________
|
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 21. květen 2008, 00:20:49 Předmět: |
|
|
Ano, a proto asi laici obvykle místo "CD disk" říkají "kazeta", aby se neopakovali... (V poslední době tedy slýchávám spíš o DVD kazetách, ale to je detail...) |
|
Návrat nahoru |
|
|
|