Поделиться через


alloc_text

Назначает имя разделу кода, в котором должны располагаться заданные определения функций. Директива pragma должна быть между декларатором функции и определением функции для именованных функций.

#pragma alloc_text( "textsection", function1, ... )

Заметки

Директива #pragma alloc_text не обрабатывает функции-члены и перегруженные функции C++. Она действует только для функций, которые объявлены с компоновкой C, т. е. с определением компоновки extern "C". При попытке использовать эту директиву pragma в функции с компоновкой C++ возникнет ошибка компилятора.

Поскольку адресация функций при помощи ключевого слова __based не поддерживается, для указания местоположения разделов необходимо использовать директиву #pragma alloc_text. Имя, заданное в параметре textsection, должно быть заключено в двойные кавычки.

Директива #pragma alloc_text должна находиться после всех объявлений указанных функций и перед их определениями.

Функции, на которые имеются ссылки в директиве #pragma alloc_text, должны быть определены в том же модуле, что и директива pragma. В противном случае, если неопределенная функция впоследствии будет скомпилирована в другом разделе текста, ошибка может не быть перехвачена. Хотя в большинстве случаев программа будет выполняться правильно, функция не будет выделена в нужных разделах.

Существуют и другие ограничения для директивы #pragma alloc_text:

  • Она не может использоваться внутри функции.

  • Она должна использоваться после объявления функции, но перед ее определением.

См. также

Ссылки

Директивы Pragma и ключевое слово __Pragma