Puntatori based (C)Based Pointers (C)

Sezione specifica MicrosoftMicrosoft Specific

__based (Riferimento C++)__based (C++ Reference)

Per i compilatori C a 32 e a 64 bit Microsoft un puntatore based è un offset a 32 o a 64 bit di una base puntatore a 32 o a 64 bit.For the Microsoft 32-bit and 64-bit C compilers, a based pointer is a 32-bit or 64-bit offset from a 32-bit or 64-bit pointer base. L'indirizzamento di base è utile per esercitare controllo sulle sezioni in cui gli oggetti vengono allocati, è possibile quindi ridurre la dimensione del file eseguibile e aumentare la velocità di esecuzione.Based addressing is useful for exercising control over sections where objects are allocated, thereby decreasing the size of the executable file and increasing execution speed. In genere, il formato per specificare un puntatore based èIn general, the form for specifying a based pointer is


type  
__based(  
base  
)  
declarator  

La variante "basato sul puntatore" dell'indirizzamento di base consente la specifica di un puntatore come base.The "based on pointer" variant of based addressing enables specification of a pointer as a base. Il puntatore based, quindi, è un offset nella sezione di memoria a partire dall'inizio del puntatore su cui si basa.The based pointer, then, is an offset into the memory section starting at the beginning of the pointer on which it is based. I puntatori basati sugli indirizzi di puntatori sono l'unico formato della parola chiave __based valida in compilazioni a 32 bit e a 64 bit.Pointers based on pointer addresses are the only form of the __based keyword valid in 32-bit and 64-bit compilations. In compilazioni di tale tipo rappresentano spostamenti a 32 bit o a 64 bit da una base a 32 bit o a 64 bit.In such compilations, they are 32-bit or 64-bit displacements from a 32-bit or 64-bit base.

Un utilizzo dei puntatori basati su puntatori è correlato agli identificatori persistenti che contengono puntatori.One use for pointers based on pointers is for persistent identifiers that contain pointers. Un elenco collegato costituito da puntatori basati su un puntatore può essere salvato su disco e successivamente ricaricato in un'altra posizione della memoria, con i puntatori che rimangono validi.A linked list that consists of pointers based on a pointer can be saved to disk, then reloaded to another place in memory, with the pointers remaining valid.

Nell'esempio seguente viene mostrato un puntatore basato su un puntatore.The following example shows a pointer based on a pointer.

void *vpBuffer;  

struct llist_t  
{  
    void __based( vpBuffer ) *vpData;  
    struct llist_t __based( vpBuffer ) *llNext;  
};  

Il puntatore vpBuffer viene assegnato l'indirizzo di memoria allocata in un qualche punto successivo del programma.The pointer vpBuffer is assigned the address of memory allocated at some later point in the program. L'elenco collegato viene rilocato rispetto al valore vpBuffer.The linked list is relocated relative to the value of vpBuffer.

Fine sezione specifica MicrosoftEND Microsoft Specific

Vedere ancheSee Also

Dichiaratori e dichiarazioni di variabiliDeclarators and Variable Declarations