.[ ČeskéHry.cz ].
velkost booleanu?
Jdi na stránku Předchozí  1, 2, 3
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
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

PříspěvekZaslal: 11. květen 2008, 09:18:52    Předmět: Odpovědět s citátem

Jojo, síťová reprezentace bývá málokdy totožná s reprezentací dat v paměti.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 14. květen 2008, 02:51:13    Předmět: Odpovědět s citátem

Pavel napsal:
Yossarian napsal:
bool je podle me ekvivalentni s int, tudiz 4bajtovej. aspon ve VB urcite Smile
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. Idea

Jinak teda "bool je prevít, ten vám rozežere pračku"... VB = hell. Rolling Eyes

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... Sad Samozřejmě, přejmenovat typy pomůže, ale 8bit překladač nějak vůbec nemá 32 a 64bitové typy... Sad
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pavel



Založen: 29. 07. 2007
Příspěvky: 54
Bydliště: Litovel

PříspěvekZaslal: 14. květen 2008, 06:44:09    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
ladik-BigBoss



Založen: 28. 07. 2007
Příspěvky: 158

PříspěvekZaslal: 14. květen 2008, 11:59:35    Předmět: Odpovědět s citátem

pokud potrebujete prenositelnou velikost datovych typu pouzijte ty definovane v stdtypes.h
neni co resit
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Yossarian



Založen: 28. 07. 2007
Příspěvky: 274
Bydliště: Šalingrad

PříspěvekZaslal: 14. květen 2008, 13:02:29    Předmět: Odpovědět s citátem

Al napsal:
... když PC počítače umějí adresovat každý bajt přímo. Idea

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 14. květen 2008, 14:00:26    Předmět: Odpovědět s citátem

Yoyo: Škoda, že taky ty nejsi chytrý jak rádio, teda Al Wink 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. Wink)
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 21. květen 2008, 00:20:49    Předmět: Odpovědět s citátem

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...) Cool
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3
Strana 3 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna