intrinsic

指定对杂注中的指定参数列表的函数所固有的。

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

备注

内部 说明通知编译器功能知道行为。 编译器可以调用函数,并不替换函数调用与内联命令,则为; 如果会更好的性能。

与内部形式的库函数下面列出。 在 内部 说明中看到的,它反映在包含指定的内部函数的第一个函数定义。 该效果继续源文件尾或对指定相同的内部函数的 功能 批注的外观。 内部 批注只能在函数定义外部 —在全局级。

以下函数具有内部形式,并使用内部形式,当您指定 /Oi时:

_disable

_outp

fabs

strcmp

_enable

_outpw

实验室

strcpy

_inp

_rotl

memcmp

strlen

_inpw

_rotr

memcpy

 

_lrotl

_strset

memset

 

_lrotr

abs

strcat

 

使用内部函数的程序速度更快,因为它们没有函数调用的开销,但可能较大由于生成的其他代码。

x86 特定

_disable 和 _enable 内部生成核心架构 " 命令禁用/启用中断,并且可能很有用的内核模式驱动程序。

示例

从命令行下面的代码与 “类别 - c - 启进度地 sample.c”并查看 sample.asm 查看它们将 x86 命令 CLI 和 STI 更改:

// 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

pow

tanh

asin

fmod

sinh

 

下面列出的浮点函数具有真正的内部形式,当您指定 /Oi/Og/fp: 快速 (或者包含 /Og 的任何选项: /Ox/O1和 /O2):

atan

exp

log10

sqrt

atan2

log

sin

tan

cos

 

 

 

可以使用 /fp: 强/Za 重写 true 的内部浮点选项的生成。 在这种情况下,函数生成为库例程,后者将参数直接传递到浮点芯片,而不是将参数推送到程序堆栈上。

请参见 # 来批注函数 信息和一个示例有关如何启用/禁用内部源文本块上。

请参见

参考

杂注指令和__Pragma关键字

编译器内部函数