Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    [C] dereferenziare nomi statici

    Salve,
    è possibile accedere ad un nome di variabile dichiarata static all'interno di una funzione se l'assegno dentro la funzione ad un puntatore globale ??

  2. #2
    Teoricamente sì, visto che essendo statica di fatto è come se fosse una variabile globable con ambito di visibilità (ma non di "vita") ridotto a quella funzione, ma mi sembra una richiesta un po' strana; spiega come mai ti serve fare ciò, forse c'è un modo più semplice per farlo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    E' un caso un pò particolare, progetto universitario dove simulo un sistema operativo con archetettura m ips, quindi non posso usare main e non ho librerie, se non quelle che creo io.
    Praticamente ho questo vettore dichiarato static che mi rappresenta una tabella hash dichiarata nella funzione, questo vettore di tipo puntatore punta ai semafori, formati anchessi da un vettore di tipo struct, gestito tramite puntatori(next,prev), quindi, con blocchi puntati dal puntatore a blocchi liberi e/o usati.Questi sono di tipo semaforo, questi ultimi puntano a delle code di processi.

    lo static dichiara un vettore di tipo struct che poi faccio puntare da un puntatore globale durante l'inizializzazione del vettore.

    al vettore vi accedo in altre funzioni tramite il puntatore globale

    più che altro la mia era una domanda che si riferiva all'implementazione dello static

  4. #4
    Non puoi rendere globale la variabile static?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    no, nelle specifiche vuole che rimanga locale alla funzioni, che sarà chiamata una sola volta per inizializzare le stutture.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.