intrinsic

Указывает, что вызовы функций, определенным в списке аргументов директивы pragma внутреннеприсущи.

#pragma intrinsic( function1 [, function2, ...] )

Заметки

Внутреннее директива pragma сообщает компилятору, что функция имеет известный тип поведения.Компилятор может вызвать функцию и заменить вызов функции с встроенным инструкциям, если оно завершится повышения производительности.

Функции библиотеки с внутренними формами перечислены ниже.После Внутреннее увидена pragma, он вступает в силу на первое определение функции, содержащей указанную внутреннеприсущую функцию.Эффект продолжается в конец исходного файла или на представление a Функция директива pragma, определяющая одну и ту же внутреннеприсущую функцию.Внутреннее pragma warning можно использовать только за пределами определения функции - на глобальном уровне.

Следующие функции имеют встроенные формы и встроенные формы используются при указании /Oi.

_disable

_outp

fabs

strcmp

_enable

_outpw

лаборатории

strcpy

_inp

_rotl

memcmp

strlen

_inpw

_rotr

memcpy

 

_lrotl

_strset

memset.

 

_lrotr

abs

strcat

 

Программы, использующих встроенные функции работают быстрее, поскольку они не имеют издержки вызовов функций но могут быть более крупные из-за дополнительные созданному Коду.

Специфика для платформы 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.Вместо этого они имеют версии, которые передают аргументы напрямую к обломоку плавающей запятой, а не отправляющ их в стек программы:

acos

cosh

плен

tanh

asin

fmod

sinh

 

Функции с плавающей запятой, перечисленных ниже, имеющие внутренние формы при указании true /Oi" /Ogи /fp: быстрый (или какой-либо параметр, включающий /Og: /Ox" /O1и /O2).

atan

exp

log10

sqrt

atan2

log

sin

tan

cos

 

 

 

Можно использовать /fp: strict OR /Za переопределение создание истинных внутренних параметров с плавающей запятой.В этом случае функции создаются как стандартные библиотечные процедуры, которые передают аргументы непосредственно в чип с плавающей запятой, а не в стек программы.

См. # функция прагмы дополнительные сведения и пример на включение/отключение встроенные функции для блока исходного текста.

См. также

Ссылки

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

Внутренний компилятора