/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 (optimalizace celého programu).
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
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
Do pole Další možnosti zadejte možnost kompilátoru.
Programové nastavení tohoto parametru kompilátoru
- Viz třída AdditionalOptions.
Viz také
Parametry kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC