C koutek, přetypovávání pointrů

Josef Stengl ok1ced na nagano.cz
Čtvrtek Červenec 9 19:20:00 CEST 2009


char jest 8bitů. Alespoň tomu zatím věřím, studuji to pořádně jen dva dny. Architektura V850e. A je to psané přímo pro tu architekturu, páč na jiné není stený HW :-). Překladač GCC (tedy od green hillu, nestudoval jsem rodíly mezi GCC a variantou od GHS, zatím nebyl čas). Neuvedl jsem to, protože jsem to v tomto případě nepovažoval za důležité.


To že char může být 16 nebo 32 bitů (ne jen teoreticky) je pro mě relativní novinka, neznáte příklad nějaké architektury, která to má implementováno?

ced

Libor Chocholaty wrote:
> Spis by bylo zajime vedet jak je velky typ char.
> Jestli 8, 16 nebo 32 bitu. Protoze pokud min nez 32, tak tim treba
> davaji prekladaci najevo, ze ten ukazatel muze ukazovat i na adresy
> nezarovnane na mod 4. Jsou architektury, ktere to bytostne nesnaseji,
> treba Motorola M68000 mela hw vyjimku 0x03 pristup na lichou adresu
> (fyzicky chybel adresni vodic A0), jine architektury pristupuji na
> nezarovnane adresy vyrazne pomaleji nez na zarovnane.
> 
> Libor
> 
> 
> Artur Kudelka wrote:
>> Ahoj,
>> jen hádám.  Nechtějí tím přetypováním "ořezat" adresu na spodních  16
>> bitů  ?
>> Ale proč, to netuším.
>> Zdraví
>>      Artur ------------ Původní zpráva ------------
>> Od: Josef Stengl <ok1ced na nagano.cz>
>> Předmět: C koutek, přetypovávání pointrů
>> Datum: 09.7.2009 15:17:09
>> ----------------------------------------
>> Ahoj,
>>
>> Tak jsem  ji četl kod a nevím proč je tak napsán.
>> mějme
>>
>>
>> uint32_t var;
>> uint32_t * p_point= (uint32_t *)((char *) (var));
>>
>> vím k čemu to slouží, jedná se o vytvoření pointru na uint32_t 
>> hodnotu na adrese proměnné var.
>>
>> Ale, netuší někdo důvod, proč je to nejdříve přetypováno na pointer na
>> char a pak na pointer na uint32_t? (Jedná se nějaký NEC a unisigned
>> int jest 32 bit).
>> Děkuji.
>>
>> ced 
> 
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux



Další informace o konferenci Linux