Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Ho smesso di credere a Babbo Natale quando avevo sei anni. Mia madre mi porto' a vederlo in un supermercato, e lui mi chiese l'autografo.

Shirley Temple 

Sondaggio:

Chi ? la donna pi? sexy del mondo?

Cindy Crawford
Jennifer Lopez
Sabrina Ferilli
Maraiah Carey
Manuela Arcuri
Christina Aguilera
Cameron Diaz
Pamela Anderson
Nina Morich
Maria Grazia Cucinotta
Megan Gale
Naomi Campell
Britney Spears

visualizza risultati


 

Membri volatile

Il C++ e` un linguaggio adatto a qualsiasi tipo di applicazione, in particolare a quelle che per loro natura si devono interfacciare direttamente all'hardware. Una prova in tal proposito e` fornita dalla keyword volatile che posta davanti ad un identificatore di variabile comunica al compilatore che quella variabile puo` cambiare valore in modo asincrono rispetto al sistema:


  volatile int Var;

  /* ... */
  int B = Var;
  int C = Var;
  /* ... */


In tal modo il compilatore non ottimizza gli accessi a tale risorsa e ogni tentativo di lettura di quella variabile e` tradotto in una effettiva lettura della locazione di memoria corrispondente.
Gli oggetti volatile sono normalmente utilizzati per mappare registri di unita` di I/O all'interno del programma e per essi valgono le stesse regole viste per gli oggetti const; in particolare solo funzioni membro volatile possono essere utilizzate su oggetti volatile e non si possono dichiarare volatile costruttori e distruttori (che sono comunque utilizzabili sui tali oggetti):


  class VolatileClass {
    public:
      VolatileClass(int ID);
      long int ReadFromPort() volatile;
      /* ... */

    private:
      volatile long int ComPort;
      const int PortID;
      /* ... */
  };

  VolatileClass::VolatileClass(int ID) : PortID(ID) {}

  long int VolatileClass::ReadFromPort() volatile {
    return ComPort;
  }


Si noti che volatile non e` l'opposto di const: quest'ultima indica al compilatore che un oggetto non puo` essere modificato indipendentemente che sia trattato come una vera costante o una variabile a sola lettura, volatile invece dice che l'oggetto puo` cambiare valore al di fuori del controllo del sistema; quindi e` possibile avere oggetti const volatile. Ad esempio unita` di input, come la tastiera, possono essere mappati tramite oggetti dichiarati const volatile:


  class Keyboard {
    public:
      Keyboard();
      const char ReadInput() const volatile;
      /* ... */

    private:
      const volatile char* Buffer;
  };

 

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2022 Cataldo Sasso