[senalug] Re: union e POSIX

  • From: Federico Tomassini <federicotom@xxxxxxxx>
  • To: senalug@xxxxxxxxxxxxx
  • Date: Fri, 23 Nov 2007 20:39:57 +0100

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrea Diamantini wrote:
> Allora, sono tornato a casa e ho inaugurato la nuova viabilità senigalliese 
> prendendo il ponte del cityper CONTROMANO..
> Torno a casa e non c'è nessuno. Non avevo 2 figli, io? boh.. ah bigliettino. 
> Sono dalla nonna. La madre ha il turno di notte all'ospedale.
> Avverto un leggero languorino.. certo! Stasera non ho cenato.
> Insomma sono quasi le tre e ancora ho le union e le nostre elucubrazioni su 
> posix in testa
> Google --> "linguaggio c union" --> mi sento fortunato ----> 
> http://www.in-f-or.it/informatica/c/cap28.html.
> 
> Per i più pigri inserisco l'estratto che ci riguarda:
> 
> *****************************************************************************
> Una delle caratteristiche significative del linguaggio C è quella di essere 
> un 
> linguaggio in grado di compiere manipolazioni e modifiche anche a livello del 
> singolo bit. Uno dei modi di eseguire queste operazioni è quello di usare i 
> campi a bit (bit-field). Un bit-field è simile ad una struttura nella 
> dichiarazione, ma solo nella dichiarazione. Possiede infatti la particolarità 
> di assegnare un identificatore ad uno o più bit all'interno di un int o un 
> char, con segno o senza segno secondo il compilatore usato. Un esempio di 
> dichiarazione di bit-field può essere il seguente: 
> 
>  struct
>  {
>  unsigned char f1 : 1;
>  unsigned char f2 : 1;
>  unsigned char f3 : 3;
>  } flag;
>  
>  Questo codice dichiara una variabile flag costituita da tre bit-field 
> chiamati f1, f2, f3, rispettivamente di 1, 1 e 3 bit. Naturalmente f1 ed f2 
> potranno contenere solo i valori 0 e 1, mentre f3 potrà contenere valori 
> interi compresi tra 0 e 7. Un esempio di assegnazione può essere il seguente: 
> 
>  flag.f1 = 1;
>  flag.f2 = 0;
>  flag.f3 = 6;
>  
>  Se erroneamente viene assegnato ad un bit-field un valore maggiore di quello 
> che il campo può contenere in base all'aritmetica binaria, il comportamento 
> del programma sarà difficilmente prevedibile. 
> **********************************************************************

ah ecco ora si spiega! Non sapevo esistessero dei tipi per gestire i
bit, fico.


- --
Federico
Today is Boomtime, the 35th day of The Aftermath in the YOLD 3173
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFHRyyNi7obm7aBjHcRAuh3AJ9MOx0Rbbhfb2j/nCv6TfslGzu1tgCfc7C8
dchC5o9F9IYSgz6F2hXPRE0=
=0g+r
-----END PGP SIGNATURE-----

Other related posts: