Bagikan melalui


/H (Batasi Panjang Nama Eksternal)

Ditolak. Membatasi panjang nama eksternal.

Sintaks

/Hnumber

Argumen

number
Menentukan panjang maksimum nama eksternal yang diizinkan dalam suatu program.

Keterangan

Secara default, panjang nama eksternal (publik) adalah 2.047 karakter. Ini berlaku untuk program C dan C++. Menggunakan /H hanya dapat mengurangi panjang pengidentifikasi maksimum yang diizinkan, bukan meningkatkannya. Spasi antara /H dan angka bersifat opsional.

Jika program berisi nama eksternal yang lebih panjang dari angka, karakter tambahan diabaikan. Jika Anda mengkompilasi program tanpa /H dan jika pengidentifikasi berisi lebih dari 2.047 karakter, pengkompilasi akan menghasilkan Kesalahan Fatal C1064.

Batas panjang mencakup garis bawah awal yang dibuat kompilator (_) atau tanda (@). Karakter ini adalah bagian dari pengidentifikasi dan mengambil lokasi yang signifikan.

  • Pengkompilasi menambahkan garis bawah terkemuka (_) ke nama yang dimodifikasi oleh __cdecl konvensi (default) dan __stdcall panggilan, dan tanda di depan (@) ke nama yang dimodifikasi oleh __fastcall konvensi panggilan.

  • Pengkompilasi menambahkan informasi ukuran argumen ke nama yang dimodifikasi oleh __fastcall konvensi panggilan dan __stdcall , dan menambahkan informasi jenis ke nama C++.

Anda mungkin menemukan /H berguna:

  • Saat Anda membuat program bahasa campuran atau portabel.

  • Saat Anda menggunakan alat yang memberlakukan batasan panjang pengidentifikasi eksternal.

  • Saat Anda ingin membatasi jumlah ruang yang digunakan simbol dalam build debug.

Contoh berikut menunjukkan cara menggunakan /H benar-benar dapat memperkenalkan kesalahan jika panjang pengidentifikasi terlalu banyak dibatasi:

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

Anda juga harus berhati-hati saat menggunakan opsi /H karena pengidentifikasi pengkompilasi yang telah ditentukan sebelumnya. Jika panjang pengidentifikasi maksimum terlalu kecil, pengidentifikasi tertentu yang telah ditentukan sebelumnya akan tidak terselesaikan serta panggilan fungsi pustaka tertentu. Misalnya, jika printf fungsi digunakan dan opsi /H5 ditentukan pada waktu kompilasi, simbol _prin akan dibuat untuk mereferensikan printf, dan ini tidak akan ditemukan di pustaka.

Penggunaan /H tidak kompatibel dengan /GL (Siapa le Program Optimization).

Opsi /H tidak digunakan lagi sejak Visual Studio 2005; batas panjang maksimum telah ditingkatkan dan /H tidak lagi diperlukan. Untuk daftar opsi pengkompilasi yang tidak digunakan lagi, lihat Opsi Pengkompilasi yang Tidak Digunakan lagi dan Dihapus di Opsi Pengkompilasi Yang Tercantum menurut Kategori.

Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Masukkan opsi pengkompilasi dalam kotak Opsi Tambahan.

Untuk mengatur opsi pengkompilasi ini secara terprogram

Baca juga

Opsi Pengkompilasi MSVC
Sintaks Baris Perintah Pengkompilasi MSVC