Sdílet prostřednictvím


Vnitřní objekty serveru kompilátoru

Většina funkcí, které jsou obsaženy v knihovnách, ale některé funkce jsou součástí (to znamená vnitřní) kompilátoru.Tyto jsou označovány jako vnitřní funkce nebo vnitřní objekty serveru.

Poznámky

Pokud je funkce vnitřní, kód funkce, je obvykle připojen, režie volání funkce Zabránění a vysoce efektivní počítače pokyny vyzařovaného funkce umožňující.Vnitřní je často rychlejší než ekvivalentní vložené sestavení, protože Optimalizátor má zabudované znalosti kolik vnitřní objekty serveru chovat, takže může být k dispozici některé optimalizace nejsou k dispozici při použití vložených sestavení.Také Optimalizátor můžete rozbalit vnitřní odlišně, jinak zarovnání vyrovnávací paměti nebo provést další úpravy v závislosti na kontextu a argumenty volání.

Použití vnitřní objekty serveru ovlivňuje přenositelnost kódu, protože vnitřní objekty serveru, které jsou k dispozici v jazyce C++ nemusí být k dispozici v případě, že kód je zkompilován s jinými kompilátory a některé vnitřní objekty serveru, které může být k dispozici pro některé cílové architektury nejsou k dispozici pro všechny architektury.Vnitřní objekty serveru jsou však obvykle obecnější než vložené sestavení.Vnitřní objekty serveru jsou vyžadovány na 64bitové architektury, kde vložené sestavení není podporován.

Některé vnitřní objekty serveru, například __assume a __ReadWriteBarrier, poskytují informace kompilátoru, který ovlivňuje chování Optimalizátor.

Některé vnitřní objekty serveru jsou k dispozici pouze jako vnitřní objekty serveru a některé jsou k dispozici ve vnitřní implementace funkce i.Můžete určit, aby kompilátor použít dvěma způsoby v závislosti na tom, zda chcete povolit pouze určité funkce provádění vnitřní nebo chcete povolit všechny vnitřní objekty serveru.The first way is to use #pragma intrinsic(intrinsic-function-name-list).Pragma lze určit vnitřní jeden nebo více vnitřní objekty serveru odděleny čárkami.Druhým je použití /Oi (generovat vnitřní funkce) možnosti kompilátoru, která zpřístupňuje všechny vnitřní objekty serveru dané platformy.Pod /Oi, použijte #pragma function(intrinsic-function-name-list) volání funkce použity namísto vnitřní vynutit.Pokud dokumentace pro vnitřní konkrétní poznámky, rutinní dostupný pouze jako vnitřní, pak bez ohledu zda slouží k provádění vnitřní /Oi nebo #pragma intrinsic je určena.Ve všech případech /Oi nebo #pragma intrinsic umožňuje ale nevede, optimalizace vnitřní použití.Optimalizátor může stále volání funkce.

Jsou k dispozici v implementacích vnitřní na architekturách některých některých standardních funkcí knihovny C/C++.Při volání funkce CRT, vnitřní provedení se používá, pokud /Oi je zadán na příkazovém řádku.

Je k dispozici soubor záhlaví, Intrin.h, který prohlašuje prototypů pro vnitřní funkce.Navíc některé Windows záhlaví deklarovat funkce, které mapují na vnitřní kompilátor.

V následující části seznamu všechny vnitřní objekty serveru, které jsou k dispozici na různých architekturách.Další informace o práci vnitřní objekty serveru procesor konkrétní cíl naleznete v referenční dokumentaci výrobce.

Viz také

Referenční dokumentace

Klíčových slov jazyka C++

Další zdroje

Referenční ARM Assembler

Microsoft Macro Assembler - reference

C referenční knihovny runtime