7 Встроенные функции, предоставляемые GCC
GCC предоставляет очень большое количество неявно объявляемых встроенных функций, которые обычно подставляются компилятором непосредственно в код. Некоторые из этих встроенных функций напрямую соответствуют стандартным функциям библиотеки. Некоторые предназначены для внутреннего использования при обработке исключений или списков аргументов переменной длины и не документируются здесь, поскольку могут время от времени изменяться; мы не рекомендуем использовать эти функции в общем случае.
Остальные функции предоставляются либо для целей оптимизации, либо для доступа к низкоуровневым возможностям, необходимым для реализации функций библиотек или подобного «связующего кода» между GCC и другими языками программирования или библиотеками. Другие функции зависят от целевой платформы и обеспечивают прямой доступ к инструкциям, не имеющим прямых эквивалентов в C, без необходимости писать код на языке ассемблера. Существуют также встроенные функции для поддержки различных видов проверки ошибок во время выполнения.
Имена большинства встроенных функций имеют префикс ‘__builtin_’, хотя не все они следуют этому соглашению. Если не указано иное, все встроенные функции доступны во всех языках семейства C, поддерживаемых GCC.
За исключением встроенных функций, имеющих эквиваленты в библиотеках, например стандартных функций библиотеки C, рассматриваемых ниже в разделе Встроенные функции для функций библиотеки C, или функций, раскрывающихся в вызовы библиотек, встроенные функции GCC всегда раскрываются непосредственно в код и поэтому не имеют соответствующих точек входа, а получить их адрес невозможно. Попытка использовать их в выражении, отличном от вызова функции, приводит к ошибке компиляции.
- Встроенные функции для функций библиотеки C
- Дополнительные встроенные функции для числовых операций
- Встроенные функции для выделения памяти в стеке
- Нелокальные переходы
- Формирование вызовов функций
- Получение адреса возврата или адреса кадра функции
- Внутренние интерфейсы очистки стека
- Использование векторных инструкций с помощью встроенных функций
- Встроенные функции для атомарного доступа к памяти
- Проверка размера объекта
- Встроенные функции для выделения и освобождения памяти в C++
- Другие встроенные функции, предоставляемые GCC
- Встроенные функции, предназначенные для конкретных целевых машин
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Built_002din-Functions.html