/H (restringir o tamanho de nomes externos)
Restringe o comprimento de nomes externos.
/Hnumber
Arguments
- number
Especifica o comprimento máximo permitido em um programa de nomes externos.
Comentários
Por padrão, o comprimento de nomes (públicos) externos é 2,047 caracteres. Isso é verdadeiro para programas c e C++. Usando /H pode apenas diminuir o comprimento máximo permitido de identificadores, não aumente o proprietário. Um espaço entre /H e number é opcional.
Se um programa contiver nomes externos mais de number, os caracteres extras serão ignorados. Se você compilar um programa sem /H e se um identificador contém mais de 2,047 caracteres, o compilador gerará C1064 de erro fatal.
O limite de comprimento inclui qualquer sublinhado à esquerda criado pelo compilador (_) ou arroba (@). Esses caracteres são parte do identificador e levar a um local significativo.
O compilador adiciona um líder sublinhado (_) para nomes modificados pela __cdecl (padrão) e __stdcall chamando convenções e líder de arroba (@) para nomes modificados pela __fastcall chamando convenção.
O compilador acrescenta informações de tamanho do argumento nomes modificado pela __fastcall e __stdcall chamando a convenções e adiciona informações de tipo para nomes de C++.
Você pode encontrar /H útil:
Quando você cria programas de linguagem mista ou portátil.
Quando você usar ferramentas que impõem limites no comprimento de identificadores externos.
Quando você deseja restringir a quantidade de espaço que símbolos de usam em uma compilação de depuração.
A exemplo a seguir mostra como usar /H realmente é possível introduzir erros se os comprimentos de identificador são muito limitados:
// 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) {}
Você também deve ter cuidado ao usar o /H opção por causa de identificadores de compilador predefinido. Se o comprimento máximo do identificador é muito pequeno, certos identificadores predefinidos será a biblioteca não resolvida, bem como determinadas chamadas de função. Por exemplo, se a printf função é usada e a opção /H5 é especificado em tempo de compilação, o símbolo _prin será criado para fazer referência a printf, e não podem ser encontrado na biblioteca.
Uso de /H é incompatível com /GL (otimização de programa total).
/Hé obsoleto; aumentaram os limites de comprimento máximo e /H não é mais necessária. For more information, see Deprecated Compiler Options in Visual C++ 2005.
Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio
Abra o projeto Property Pages caixa de diálogo. For details, see Como: Abrir páginas de propriedades do projeto.
Clique o C/C++ pasta.
Clique na a linha de comando página de propriedades.
Digite a opção de compilador no Opções adicionais de caixa.
Para definir esta opção de compilador programaticamente
- See AdditionalOptions.