определить программный раздел в коде C (GCC)

На языке ассемблера легко определить раздел, например:

.section foo

Как это можно сделать в коде C? Я хочу поместить фрагмент кода C в специальный раздел, а не в .text , поэтому я смогу поместить этот раздел в специальное место в скрипте компоновщика.

Я использую GCC ,

10
задан Mats Petersson 1 March 2014 в 00:21
поделиться

1 ответ

Стандарт C ничего не говорит о "секциях" в том смысле, который вы имеете в виду, поэтому вам придется использовать расширения, специфичные для вашего компилятора.

В GCC вы захотите использовать атрибут section:

extern void foobar(void) __attribute__((section("bar")));

Есть ограниченная документация здесь, включая предупреждение:

Некоторые форматы файлов не поддерживают произвольные секции, поэтому атрибут section атрибут не доступен на всех платформах. Если вам нужно отобразить все содержимое модуля в определенной секции, рассмотрите возможность использования средства компоновщика.

17
ответ дан 3 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: