/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
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Masukkan opsi pengkompilasi dalam kotak Opsi Tambahan.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat AdditionalOptions.
Baca juga
Opsi Pengkompilasi MSVC
Sintaks Baris Perintah Pengkompilasi MSVC
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk