/H (Limita la lunghezza dei nomi esterni)

Deprecato. Limita la lunghezza dei nomi esterni.

Sintassi

/Hnumero

Argomenti

number
Specifica la lunghezza massima dei nomi esterni consentiti in un programma.

Osservazioni:

Per impostazione predefinita, la lunghezza dei nomi esterni (pubblici) è di 2.047 caratteri. Questo vale per i programmi C e C++. L'uso di /H può ridurre solo la lunghezza massima consentita degli identificatori, non aumentarla. Uno spazio tra /H e il numero è facoltativo.

Se un programma contiene nomi esterni più lunghi del numero, i caratteri aggiuntivi vengono ignorati. Se si compila un programma senza /H e se un identificatore contiene più di 2.047 caratteri, il compilatore genererà l'errore irreversibile C1064.

Il limite di lunghezza include qualsiasi carattere di sottolineatura iniziale creato dal compilatore (_) o con segno (@). Questi caratteri fanno parte dell'identificatore e accettano una posizione significativa.

  • Il compilatore aggiunge un carattere di sottolineatura iniziale (_) ai nomi modificati dalle __cdecl convenzioni di chiamata (impostazione predefinita) e __stdcall da un segno iniziale (@) ai nomi modificati dalla convenzione di __fastcall chiamata.

  • Il compilatore aggiunge informazioni sulle dimensioni degli argomenti ai nomi modificati dalle __fastcall convenzioni di chiamata e __stdcall e aggiunge informazioni sul tipo ai nomi C++.

È possibile trovare /H utile:

  • Quando si creano programmi in linguaggio misto o portatili.

  • Quando si usano strumenti che impongono limiti alla lunghezza degli identificatori esterni.

  • Quando si desidera limitare la quantità di spazio usata dai simboli in una compilazione di debug.

L'esempio seguente mostra come l'uso di /H possa effettivamente introdurre errori se le lunghezze degli identificatori sono troppo limitate:

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

È anche necessario prestare attenzione quando si usa l'opzione /H a causa di identificatori del compilatore predefiniti. Se la lunghezza massima dell'identificatore è troppo piccola, alcuni identificatori predefiniti non verranno risolti e determinate chiamate di funzione di libreria. Ad esempio, se viene usata la printf funzione e l'opzione /H5 viene specificata in fase di compilazione, il simbolo _prin verrà creato per fare riferimento printfa e questo non verrà trovato nella libreria.

L'uso di /H non è compatibile con /GL (Ottimizzazione dell'intero programma).

L'opzione /H è deprecata a partire da Visual Studio 2005. I limiti di lunghezza massima sono stati aumentati e /H non è più necessario. Per un elenco delle opzioni del compilatore deprecate, vedere Opzioni del compilatore deprecate e rimosse in Opzioni del compilatore elencate per categoria.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. Immettere l'opzione del compilatore nella casella Opzioni aggiuntive.

Per impostare l'opzione del compilatore a livello di codice

Vedi anche

Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC