Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Słowo inline kluczowe to specyfikator funkcji, który nakazuje kompilatorowi zastąpienie kodu w definicji funkcji dla każdego wystąpienia wywołania funkcji.
Uwagi
Podstawianie kodu wbudowanego odbywa się tylko według uznania kompilatora. Na przykład kompilator nie będzie w tekście funkcji, jeśli jej adres jest pobierany lub czy jest zbyt duży, aby w tekście. Gdy kompilator nie w tekście funkcji zdefiniowanej w pliku nagłówkowym, jest oznaczony dla konsolidatora, aby uniknąć naruszeń reguły jednej definicji (ODR).
Aby funkcja była traktowana jako kandydat do podkreślenia, musi użyć definicji funkcji w nowym stylu z podpisem, który deklaruje zwracany typ i wszystkie typy parametrów.
Użyj tego formularza, aby określić funkcję śródliniową:
inlinedefinicja funkcji
Funkcje wbudowane generują szybszy i czasami mniejszy kod niż równoważne wywołanie funkcji:
Funkcje wbudowane oszczędzają czas wymagany do przygotowania stosu do argumentów i wartości zwracanej oraz czasu wykonania skoku i zwrócenia wywołania funkcji.
Nawet w przypadku powtarzania się kilka razy małe funkcje wbudowane z być może trzech wierszy lub mniej tworzą mniej kodu niż równoważne wywołanie funkcji, ponieważ kompilator nie generuje kodu do obsługi argumentów i wartości zwracanej.
Kompilator może optymalizować funkcje generowane w sposób niedostępny dla normalnych funkcji. Kompilator zwykle nie wykonuje optymalizacji między różnymi procedurami.
Nie należy mylić funkcji używanych inline z wbudowanym kodem asemblera. Aby uzyskać więcej informacji na temat asemblera wbudowanego, zobacz Asembler wbudowany.
Specyficzne dla firmy Microsoft
Firma Microsoft obsługuje również słowa __inline kluczowe i __forceinline informuje kompilator o zastąpieniu kodu w definicji funkcji dla każdego wystąpienia wywołania funkcji. Słowo __inline kluczowe jest synonimem .inline Słowo __forceinline kluczowe nakazuje kompilatorowi złagodzenie heurystyki na temat tego, czy w tekście funkcji nie gwarantuje, że funkcja zostanie podkreślona.
Aby uzyskać zgodność z poprzednimi wersjami _inline i _forceinline są synonimami odpowiednio i __inline__forceinline, chyba że określono opcję /Za kompilatora (Wyłącz rozszerzenia języka).
END Specyficzne dla firmy Microsoft