pic a C

Josef Štengl ok1ced na nagano.cz
Pondělí Leden 14 18:19:03 CET 2013


No, pro mě je case přehlednější než smečka else if :-).

A to ostatní také. Pokud chci zjistit, jestli je nastaven nějaký bitík, 
tak napíšu

#define TimeChange ((*(unsigned char *)&_changeDateTime))


...

if (TimeChange)
{
   switch (TimeChange)
   {
     case NewWordBegin:
     ....
   }
}

Ale hádat se s vámi nebudu. :-)

ced


Dne 14.1.2013 15:13, Miroslav Draxal napsal(a):
> Nééé, chtěl jsem si to zpřehlednit. Míra
>
> *From:*hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz]
> *On Behalf Of *Josef Štengl
> *Sent:* Monday, January 14, 2013 1:06 PM
> *To:* HW-news
> *Subject:* Re: pic a C
>
> Takhle?
>
> switch ((*(unsigned char *)&_changeDateTime)) /* Naposledy jsem to
> použil před 7 lety, nyní to mám v kolonce NEPOUŽÍVAT. Ale to je jedno.
> */
> {
> case 0x01u; /* newHalfSec */
> ...
> break;
> case 0x02u; /* newSec */
> ...
> }
>
> Ale pozor. nejsem si jist pořadím bitů, je to závislé na architektuře.
> Možná to bude chtít prohodit.
>
> Já bych na to šel jinak.
>
> unsigned char date_time;
>
> #define newHalfSec 0x01u;
> #define newSec 0x02u;
> #define newMinuta 0x04u;
> atd ...
>
> #define set_time(co) date_time |= co
> #define clear_time(co) date_time &= ~co;
>
> No není to sice SIL validní, ale to bitové pole ne, tak to zřejmě nebude
> vadit :-)
>
> Dne 14.1.2013 12:31, Miroslav Draxal napsal(a):
>>  Dobrý den,
>>
>>  Tak zase zápis.
>>
>>  typedef struct {
>>
>>  unsigned newHalfSec : 1; // nová půlsekunda
>>
>>  unsigned newSec : 1; // nová sekunda
>>
>>  unsigned newMinuta : 1; // nová minuta
>>
>>  unsigned newHodina : 1; // nová hodina
>>
>>  unsigned new10ms : 1; // nových 10ms
>>
>>  unsigned new20ms : 1;//nových 20ms
>>
>>  unsigned new100ms : 1;//nových 100ms
>>
>>  unsigned HodinyStop : 1; //zastaví běh hodin
>>
>>  } _changeDateTime;
>>
>>  typedef struct {
>>
>>  char rok;
>>
>>  char mesic;
>>
>>  char den;
>>
>>  char den_tyden;
>>
>>  char hodin;
>>
>>  char minut;
>>
>>  char sekund;
>>
>>  char counter; // kolikrát za 1sekundu dojde k přerušení
>>
>>  uint * pDenNazev; // ukazatel na paměťový prostor s názvem dnu
>>
>>  _changeDateTime changeDateTime;
>>
>>  } _DateTime;
>>
>>  _DateTime DateTime;
>>
>>  Jak do Switch zapsat něco takového viz níže. Zase nějak přes pointery?
>>
>>  /Switch (DateTime.changeDateTime)/
>>
>>  /{/
>>
>>  /Case . new10ms:/
>>
>>  /…. /
>>
>>  / Break;/
>>
>>  /Case …./
>>
>>  /}/
>>
>>  Míra**
>>
>>
>>
>>  __________ Informace od ESET NOD32 Antivirus, verze databaze 7890
>>  (20130114) __________
>>
>>  Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>>  http://www.eset.cz
>>
>>
>>  _______________________________________________
>>  HW-list mailing list - sponsored by www.HW.cz <http://www.HW.cz>
>>  Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>  http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz <http://www.HW.cz>
> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 7891
> (20130114) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 7891
> (20130114) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
> _______________________________________________
> 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