La parola chiave const e il file linker

0

Se dichiaro in un file di intestazione, ad esempio, extern unsigned long * Ptr; e il valore di questo puntatore Ptr nel file linker. Questo indirizzo sarà 'costante'? Posso cambiare il suo valore?

    
posta physics 11.11.2013 - 18:22
fonte

1 risposta

2
extern unsigned long *Ptr;

Puoi scrivere sia su Ptr (punta a un nuovo oggetto) che su *Ptr (aggiorna la cosa puntata).

extern const unsigned long *Ptr;
extern unsigned long const *Ptr;

Puoi scrivere su Ptr (punta a un nuovo oggetto), ma non puoi scrivere su *Ptr .

extern unsigned long * const Ptr;

Puoi scrivere su *Ptr (aggiorna la cosa puntata), ma non puoi scrivere su Ptr .

extern const unsigned long * const Ptr;
extern unsigned long const * const Ptr;

Non puoi scrivere su Ptr o *Ptr .

In tutti i casi, il valore di &Ptr non cambia.

Ovviamente, ciò presuppone una dichiarazione che definisce corrispondente per Ptr .

    
risposta data 11.11.2013 - 22:44
fonte

Leggi altre domande sui tag