Udostępnij za pośrednictwem


/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

  1. Otwórz okno dialogowe Strony właściwości projektu.Szczegółowe informacje – zobacz: Porady: otwieranie stron właściwości projektów.

  2. Kliknij folder C/C++.

  3. Kliknij stronę właściwości Wiersz polecenia.

  4. Wpisz opcję kompilatora w Dodatkowe opcje pole.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

Informacje

Opcje kompilatora

Ustawianie opcji kompilatora