Páteční hádanka - C a HW

Josef Štengl ok1ced na nagano.cz
Pátek Říjen 2 14:33:03 CEST 2015


Narazil jsem na to, když jsem četl kód pro sériovou komunikaci, posílalo se 256 bytů zpracovalo to 256 bytů, ale 
zapisovalo se to do pole o 128 char (to jsem ještě pobral) a adresovala se poloviční velikost ... tak jsem našel chybu, 
kde nebyla :-[. Setkal jsem se s přístupem, kde se zapisovalo také po 16 bitech ale adresovalo se po 8 bytech. Ale to jen 
z uint16_t nepoznáte.

Pak mě přišel zajímavý sizeof(int) = 1, vzhledem k C11 § 6.5.3.4 odstavec 2:

The sizeof operator yields the size (in bytes) of its operand ...

Protože jsem si pamatovat in bytes (ale bez závorky), tak mě to nějak nevycházelo.

Je to všechno logické, jen jsem se detailně nesetkal s architekturou s organizací paměti 1x16 a ne 1x8 a tak mě to zmátlo. 
A to jsem na ní napsal už jeden projekt, ale nepotřeboval jsem souvisle vyplnit blok paměti. Přišlo mě to zajímavé.

ced


Dne 2.10.2015 v 13:29 Jan Waclawek napsal(a):
> Pardon, CHAR_BIT
>
>
> ----- Original Message ---------------
>> Este som chvilu cumel do normy a do Jonesovej knihy.
>>
>> Na urcenie poctu bitov je to dobre, ale netreba nasobit konstantou 8 ale
>> makrom CHAR_BITS z <limits.h>
>>
>> wek
>>
>>
>> ----- Original Message ---------------
>>> Je to jen tak pro zajímavost a proč neodvozovat počet bitů v proměnné pomocí sizeof ale jen velikost :-)
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list