Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Specyficzne dla firmy Microsoft
W przypadku kompilatorów microsoft 32-bitowych i 64-bitowych języka C wskaźnik oparty jest 32-bitowym lub 64-bitowym przesunięciem z 32-bitowej lub 64-bitowej bazy wskaźnika. Adresowanie oparte jest przydatne do wykonywania kontroli nad sekcjami, w których są przydzielane obiekty, zmniejszając tym samym rozmiar pliku wykonywalnego i zwiększając szybkość wykonywania. Ogólnie rzecz biorąc, formularz określający wskaźnik oparty jest na
type __based( deklarator base )
Wariant oparty na wskaźniku oparty na adresowaniu umożliwia określenie wskaźnika jako podstawy. Następnie wskaźnik oparty jest przesunięciem do sekcji pamięci rozpoczynającej się od początku wskaźnika, na którym jest oparta. Wskaźniki oparte na adresach wskaźników są jedyną formą słowa kluczowego prawidłowego __based w kompilacjach 32-bitowych i 64-bitowych. W takich kompilacjach są to 32-bitowe lub 64-bitowe przemieszczenia z 32-bitowej lub 64-bitowej bazy.
Jednym z nich jest użycie wskaźników opartych na wskaźnikach w przypadku identyfikatorów trwałych zawierających wskaźniki. Połączona lista składająca się ze wskaźników opartych na wskaźniku może zostać zapisana na dysku, a następnie ponownie załadowana do innego miejsca w pamięci, a wskaźniki pozostają prawidłowe.
W poniższym przykładzie pokazano wskaźnik oparty na wskaźniku.
void *vpBuffer;
struct llist_t
{
void __based( vpBuffer ) *vpData;
struct llist_t __based( vpBuffer ) *llNext;
};
Wskaźnik vpBuffer jest przypisywany adres pamięci przydzielonej w pewnym późniejszym momencie w programie. Połączona lista jest przenoszona względem wartości vpBuffer.
Koniec specyfiki Microsoftu