intrinsic
Указывает, что вызовы функций, определенным в списке аргументов директивы pragma внутреннеприсущи.
#pragma intrinsic( function1 [, function2, ...] )
Заметки
Внутреннее директива pragma сообщает компилятору, что функция имеет известный тип поведения.Компилятор может вызвать функцию и заменить вызов функции с встроенным инструкциям, если оно завершится повышения производительности.
Функции библиотеки с внутренними формами перечислены ниже.После Внутреннее увидена pragma, он вступает в силу на первое определение функции, содержащей указанную внутреннеприсущую функцию.Эффект продолжается в конец исходного файла или на представление a Функция директива pragma, определяющая одну и ту же внутреннеприсущую функцию.Внутреннее pragma warning можно использовать только за пределами определения функции - на глобальном уровне.
Следующие функции имеют встроенные формы и встроенные формы используются при указании /Oi.
|
|||
|
|||
|
Программы, использующих встроенные функции работают быстрее, поскольку они не имеют издержки вызовов функций но могут быть более крупные из-за дополнительные созданному Коду.
Специфика для платформы x86
_disable И _enable встроенных функций создают инструкции в режиме ядра отключить и включают прерывания и могут быть полезны в драйверах работы в режиме ядра.
Пример
Компилирование следующий Код из командной строки с «cl - c - FAs sample.c» и поиск sample.asm увидеть, что они превращается в инструкции x86 и STI CLI.
// pragma_directive_intrinsic.cpp
// processor: x86
#include <dos.h> // definitions for _disable, _enable
#pragma intrinsic(_disable)
#pragma intrinsic(_enable)
void f1(void) {
_disable();
// do some work here that should not be interrupted
_enable();
}
int main() {
}
Завершить специфика для платформы x86
Функции с плавающей запятой, перечисленные ниже, не имеющие внутренние формы true.Вместо этого они имеют версии, которые передают аргументы напрямую к обломоку плавающей запятой, а не отправляющ их в стек программы:
|
Функции с плавающей запятой, перечисленных ниже, имеющие внутренние формы при указании true /Oi" /Ogи /fp: быстрый (или какой-либо параметр, включающий /Og: /Ox" /O1и /O2).
|
|
|
Можно использовать /fp: strict OR /Za переопределение создание истинных внутренних параметров с плавающей запятой.В этом случае функции создаются как стандартные библиотечные процедуры, которые передают аргументы непосредственно в чип с плавающей запятой, а не в стек программы.
См. # функция прагмы дополнительные сведения и пример на включение/отключение встроенные функции для блока исходного текста.