Sdílet prostřednictvím


/H (Omezit délku externích názvů)

Zastaralé Omezuje délku externích názvů.

Syntaxe

/Hčíslo

Argumenty

Číslo
Určuje maximální délku externích názvů povolených v programu.

Poznámky

Ve výchozím nastavení je délka externích (veřejných) názvů 2 047 znaků. To platí pro programy C a C++. Použití /H může snížit pouze maximální povolenou délku identifikátorů, nikoli ho zvýšit. Mezera mezi /H a číslem je volitelná.

Pokud program obsahuje externí názvy delší než číslo, budou nadbytečné znaky ignorovány. Pokud zkompilujete program bez /H a pokud identifikátor obsahuje více než 2 047 znaků, kompilátor vygeneruje závažnou chybu C1064.

Limit délky zahrnuje jakékoli počáteční podtržítko vytvořené kompilátorem (_) nebo znaménko (@). Tyto znaky jsou součástí identifikátoru a mají významné umístění.

  • Kompilátor přidá úvodní podtržítko (_) k názvům upraveným __cdecl (výchozí) a __stdcall konvencí volání a počáteční znak@ () k názvům upraveným __fastcall konvencí volání.

  • Kompilátor připojí informace o velikosti argumentu k názvům upraveným __fastcall konvencí volání a __stdcall přidá informace o typu do názvů jazyka C++.

Může být užitečné / H užitečné:

  • Při vytváření smíšených nebo přenosných programů.

  • Pokud používáte nástroje, které omezují délku externích identifikátorů.

  • Pokud chcete omezit množství místa, které symboly používají v sestavení ladění.

Následující příklad ukazuje, jak použití /H může ve skutečnosti zavést chyby, pokud jsou délky identifikátorů příliš omezené:

// 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) {}

Při použití parametru /H musíte být také opatrní kvůli předdefinovaným identifikátorům kompilátoru. Pokud je maximální délka identifikátoru příliš malá, nebudou některé předdefinované identifikátory vyřešeny a také volání některých funkcí knihovny. Pokud printf se například použije funkce a v době kompilace je zadána možnost /H5 , vytvoří se symbol _prin , aby bylo možné odkazovat printf, a tato možnost se v knihovně nenajde.

Použití /H není kompatibilní s /GL (Kdo le Program Optimization).

Možnost /H je od sady Visual Studio 2005 zastaralá. Maximální limity délky byly zvýšeny a /H už není potřeba. Seznam zastaralých možností kompilátoru najdete v tématu Zastaralé a odebrané možnosti kompilátoru v možnostech kompilátoru uvedených podle kategorie.

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. Do pole Další možnosti zadejte možnost kompilátoru.

Programové nastavení tohoto parametru kompilátoru

Viz také

Parametry kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC