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).