На языке ассемблера легко определить раздел, например:
.section foo
Как это можно сделать в коде C? Я хочу поместить фрагмент кода C в специальный раздел, а не в .text
, поэтому я смогу поместить этот раздел в специальное место в скрипте компоновщика.
Я использую GCC ,
Стандарт C ничего не говорит о "секциях" в том смысле, который вы имеете в виду, поэтому вам придется использовать расширения, специфичные для вашего компилятора.
В GCC вы захотите использовать атрибут section
:
extern void foobar(void) __attribute__((section("bar")));
Есть ограниченная документация здесь, включая предупреждение:
Некоторые форматы файлов не поддерживают произвольные секции, поэтому атрибут section атрибут не доступен на всех платформах. Если вам нужно отобразить все содержимое модуля в определенной секции, рассмотрите возможность использования средства компоновщика.