Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает раздел (сегмент), где неинициализированные переменные хранятся в файле объекта (.obj).
Синтаксис
#pragma bss_seg([ "section-name" [ ",section-class" ])
#pragma bss_seg({ }push|pop[,идентификатор ] [,"section-name" [ ",section-class" ])
Параметры
push
(Необязательно) Помещает запись во внутренний стек компилятора. Может push иметь идентификатор и имя раздела.
pop
(Необязательно) Удаляет запись из верхней части внутреннего стека компилятора. Может pop иметь идентификатор и имя раздела. Вы можете отображать несколько записей, используя только одну pop команду с помощью идентификатора. Имя раздела становится активным именем раздела BSS после всплывающего окна.
идентификатор
(Необязательно) При использовании с pushименем назначается запись во внутреннем стеке компилятора. При использовании с popдирективой появляется запись из внутреннего стека, пока не будет удален идентификатор . Если идентификатор не найден во внутреннем стеке, ничего не отображается.
"section-name"
(Необязательно) Имя раздела. При использовании стека popотображается, а имя раздела становится активным именем раздела BSS.
"section-class"
(Необязательно) Игнорируется, но включена для совместимости с версиями Microsoft C++ более ранней версии 2.0.
Замечания
Раздел в файле объекта — это именованный блок данных, загруженных в память в виде единицы. Раздел BSS — это раздел , содержащий неинициализированные данные. В этой статье сегмент терминов и раздел имеют то же значение.
Директива bss_segpragma сообщает компилятору, чтобы поместить все неинициализированные элементы данных из единицы перевода в раздел BSS с именем раздела. В некоторых случаях использование bss_seg времени загрузки может ускориться путем группировки неинициализированных данных в один раздел. По умолчанию раздел BSS, используемый для неинициализированных данных в файле объекта, называется .bss. Директива bss_segpragma без параметра section-name сбрасывает имя раздела BSS для последующих неинициализированных элементов .bssданных.
Данные, выделенные с помощью этого bss_segpragma объекта, не сохраняют никаких сведений о его расположении.
Список имен, которые не должны использоваться для создания раздела, см. в разделе /SECTION.
Можно также указать разделы для инициализированных данных (), функций (data_segcode_seg) и константных переменных (const_seg).
Приложение DUMPBIN.EXE можно использовать для просмотра файлов объектов. Версии DUMPBIN для каждой поддерживаемой целевой архитектуры включены в Visual Studio.
Пример
// pragma_directive_bss_seg.cpp
int i; // stored in .bss
#pragma bss_seg(".my_data1")
int j; // stored in .my_data1
#pragma bss_seg(push, stack1, ".my_data2")
int l; // stored in .my_data2
#pragma bss_seg(pop, stack1) // pop stack1 from stack
int m; // stored in .my_data1
int main() {
}
См. также
директивы Pragma и ключевые слова __pragma и _Pragma