intrinsic
Określa, że wywołania funkcji określonych na liście argumentów pragma są wewnętrzne.
#pragma intrinsic( function1 [, function2, ...] )
Uwagi
Wewnętrzny pragma informuje kompilator znane zachowanie funkcji.Kompilator może wywołać funkcję i nie zastąpić wywołanie funkcji wbudowanej instrukcje, jeżeli powstanie lepszą wydajność.
Poniżej wymieniono funkcje biblioteki formularzy wewnętrzne.Po wewnętrzny pragma jest widoczne, jej wejścia w życie w pierwszym definicji funkcji, zawierające funkcję wewnętrzne.Efekt jest kontynuowane do końca pliku źródłowego lub wygląd funkcji pragma określający tę samą funkcję wewnętrzne.Wewnętrzny pragma mogą być używane tylko poza definicji funkcji — na poziomie globalnym.
Następujące funkcje mają wewnętrzne formularze i formularze wewnętrzne są używane podczas określania /Oi:
|
|||
|
|||
|
Programy używające funkcji wewnętrzne są szybciej, ponieważ nie mają dodatkowe obciążenie związane z wywołań funkcji, ale mogą być większe ze względu na dodatkowy kod generowany.
x 86 szczególne
Intrinsics _disable i _Aktywny generowania instrukcji trybu jądra, aby włączyć/wyłączyć przerwań i może być przydatne w sterowniki trybu jądra.
Przykład
Skompiluj następujący kod w wierszu polecenia z "cl - c-FAs sample.c" i przyjrzyj się sample.asm, aby zobaczyć ich przekształcić x 86 instrukcje CLI i 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() {
}
Szczególne koniec x 86
Zmiennoprzecinkowe funkcje wymienione poniżej nie true wewnętrzne formularzy.Zamiast tego mają wersje, w których argument jest przekazywany bezpośrednio do chip zmiennoprzecinkowych zamiast naciskania ich na stosie programu:
|
Zmiennoprzecinkowe funkcje wymienione poniżej mają true wewnętrzne formularzy podczas określania /Oi, /Og, i /fp:fast (lub dowolną opcję, która zawiera /Og: /Ox, /O1i /O2):
|
|
|
Można użyć /ol: ścisłe lub /Za do zastępowania generacji true wewnętrzne opcje zmiennoprzecinkowych.W takim przypadku funkcje są generowane jako biblioteka procedur, które będą przekazywać argumenty bezpośrednio do zmiennoprzecinkowych chip zamiast naciskania ich na stosie programu.
Zobacz # pragma, funkcja informacji i przykład jak do włączania i wyłączania intrinsics dla bloku tekstu źródłowego.