Compartir a través de


data_seg

Especifica el segmento de datos donde las variables inicializadas se almacenan en el archivo .obj.

#pragma data_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )

Comentarios

El significado de los términos segmento y sección se puede cambiar en este tema.

Los archivos de OBJ se pueden ver con la aplicación de dumpbin .El segmento predeterminado en el archivo .obj para las variables inicializadas es .data.Las variables se a uninitialize que se consideran inicializar a cero y se almacenan en bss

data_seg sin parámetros restablece el segmento a .data.

  • push(opcional)
    Inserta un registro en la pila interna del compilador.push puede tener un identificador y un nombre de segmento.

  • pop (opcional)
    Quita un registro desde la parte superior de la pila interna del compilador.

  • identificador (opcional)
    Cuando se utiliza con push, asigna un nombre al registro en la pila interna del compilador.Cuando se usa con pop, los estallidos registran de pila interna hasta que se quite el identificador ; si el identificador no se encuentra en la pila interna, no se extrae nada.

    el identificador habilita varios registros que se saque con un solo comando de pop .

  • “nombre de segmento”(opcional)
    El nombre de un segmento*.* Cuando se utiliza con pop, se extrae la pila y el nombre de segmento se convierte en el nombre de segmento activo.

  • “segmento-clase” (opcional)
    Incluido por compatibilidad con C++ antes de la versión 2,0.Se omite.

Ejemplo

// pragma_directive_data_seg.cpp
int h = 1;                     // stored in .data
int i = 0;                     // stored in .bss
#pragma data_seg(".my_data1")
int j = 1;                     // stored in "my_data1"

#pragma data_seg(push, stack1, ".my_data2")   
int l = 2;                     // stored in "my_data2"

#pragma data_seg(pop, stack1)   // pop stack1 off the stack
int m = 3;                     // stored in "stack_data1"

int main() {
}

Los datos asignado mediante data_seg no conserva información sobre su ubicación.

Vea /SECTION para una lista de nombres que no se debe utilizar al crear una sección.

También puede especificar las secciones para variables const (const_seg), los datos sin inicializar (bss_seg), y funciones (code_seg).

Vea también

Referencia

Directivas de pragma y la palabra clave de __Pragma