code_seg

Указывает сегмент, где функции хранятся в файле obj.

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

Заметки

Смысл терминов сегмент и раздел заменим в этом разделе.

Файлы OBJ, можно просмотреть с dumpbin приложения.По умолчанию сегмент в obj-файле для функций .text.

code_seg без параметров сбросит сегмент в .text.

  • push(необязательно)
    Помещает запись на внутренний стек компилятора.A push может иметь Идентификатор и сегмент-имя.

  • шипучка (необязательно)
    Удаляет запись из вершины внутреннего стека компилятора.

  • Идентификатор (необязательно)
    при использовании с push, присвоити имя для записи во внутреннем стеке компилятора.при использовании с шипучка, шипучки не будут создавать с помощью внутреннего стека до Идентификатор удаляет; If Идентификатор не удается найти во внутреннем стеке, ничего не получаются.

    Идентификатор включает несколько записей, извлекаемые с одним шипучка команды.

  • «сегмент-имя»(необязательно)
    имя сегмента*.* при использовании с шипучкастек, извлекается и сегмент-имя становится имя активного сегмента.

  • «сегмент-класс» (необязательно)
    Включено для обеспечения совместимости с C++ до версии 2,0.Он не учитывается.

Пример

// pragma_directive_code_seg.cpp
void func1() {                  // stored in .text
}

#pragma code_seg(".my_data1")
void func2() {                  // stored in my_data1
}

#pragma code_seg(push, r1, ".my_data2")
void func3() {                  // stored in my_data2
}

#pragma code_seg(pop, r1)      // stored in my_data1
void func4() {
}

int main() {
}

См. /SECTION список имен не следует использовать создание раздела.

Также можно указать разделах инициализированных данных (data_segнеинициализированные данные ()bss_segconst () и переменныеconst_seg).

См. также

Ссылки

Директивы pragma и ключевое слово __Pragma