Может ли кто-нибудь сказать мне, что такое «текстовый сегмент» на C, и, если возможно, показать мне простой пример?Сегменты памяти в C - текстовом сегменте
ответ
Сегмент «текст» программы в системах Unix - это код - машинный код, функции, составляющие программу (включая, в частности, main()
, если программа написана на C или C++). Он также может включать данные только для чтения. Другие сегменты в классической программе - это сегмент данных и сегмент «bss». Сегмент «данных» содержит инициализированные данные; сегмент «bss» содержит обнуленные данные. После запуска данные и сегменты bss неразличимы.
Вы также получаете стек и «кучу».
Да, я понял все остальные сегменты памяти. Так исправьте меня, если я ошибаюсь main() в c-программе - это текстовый сегмент? –
'main()' является _in_ текстовым сегментом; так и функции, которые он вызывает. –
Отлично, вот что я хотел знать :) –
сегменты не являются концепциями программирования, они как код и данные выкладываются в исполняемых файлах и в памяти при запуске программы. Взгляните на документацию для вашего линкера на некоторые возможные подсказки. – woolstar