/H (Ograniczaj długość nazw zewnętrznych)
Ogranicza długość nazwy zewnętrzne.
/Hnumber
Argumenty
- number
Określa maksymalną długość nazwy zewnętrzne dozwolone w programie.
Uwagi
Domyślnie długość nazwy zewnętrzne (publicznego) jest 2,047 znaków.Ta zasada obowiązuje dla programów C i C++.Za pomocą /H można tylko zmniejszyć maksymalną długość dozwoloną identyfikatorów, nie ją zwiększyć.Odstęp między /H i number jest opcjonalne.
Jeśli program zawiera nazwy zewnętrzne dłużej niż number, dodatkowe znaki są ignorowane.Jeśli kompilacji programu bez /H i jeśli identyfikator zawiera więcej niż 2,047 znaków, kompilator wygeneruje Błąd krytyczny C1064.
Limit długości zawiera wszystkie utworzone przez kompilator wiodących podkreślenia (_) lub znak (@).Znaki te są częścią identyfikatora i podjęcia znaczących lokalizacji.
Kompilator doda wiodący znak podkreślenia (_) do nazw zmodyfikowany przez __cdecl (ustawienie domyślne) i __stdcall wywołanie konwencje i wiodącym w znak (@) do nazw, zmodyfikowany przez __fastcall konwencji wywoływania.
Kompilator dołącza informacje o rozmiarze argument nazwy zmodyfikowany przez __fastcall i __stdcall Konwencje wywoływania i dodaje typ informacji do nazw C++.
Może się okazać /H użyteczne:
Podczas tworzenia programów mieszane języka lub przenośne.
Po użyciu narzędzia, które nakładają ograniczenia na długości zewnętrzne identyfikatory.
Kiedy chcesz ograniczyć ilość miejsca używaną przez symbole w kompilacja do debugowania.
W poniższym przykładzie pokazano jak przy użyciu /H faktycznie mogą wystąpić błędy, jeśli identyfikator długości są ograniczone zbyt wiele:
// compiler_option_H.cpp
// compile with: /H5
// processor: x86
// LNK2005 expected
void func1(void);
void func2(void);
int main() { func1(); }
void func1(void) {}
void func2(void) {}
Należy również zachować ostrożność przy użyciu /H opcji z powodu kompilator wstępnie zdefiniowanych identyfikatorów.Jeśli długość maksymalna identyfikatora jest zbyt mały, niektórych wstępnie zdefiniowanych identyfikatorów będzie biblioteki nierozwiązany, jak również pewne wywołania funkcji.Na przykład jeśli printf funkcja jest używana i opcja /H5 jest określony w czasie kompilacji, symbol _prin zostanie utworzona w celu odniesienia printf, i to nie będzie można znaleźć w bibliotece.
Korzystać z /H jest niezgodny z /GL (Optymalizacja całego programu).
/Hzostała zaniechana; Limity maksymalnej długości został zwiększony i /H nie jest już potrzebna. Aby uzyskać dodatkowe informacje, zobacz Deprecated Compiler Options.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu.Szczegółowe informacje – zobacz: Porady: otwieranie stron właściwości projektów.
Kliknij folder C/C++.
Kliknij stronę właściwości Wiersz polecenia.
Wpisz opcję kompilatora w Dodatkowe opcje pole.
Aby programowo ustawić tę opcję kompilatora
- Zobacz AdditionalOptions.