hdrstop
pragma
Memberi Anda lebih banyak kontrol atas nama file prakomprekomilasi, dan di atas lokasi tempat status kompilasi disimpan.
#pragma hdrstop
[ ( "nama file" ) ]
Nama file adalah nama file header yang telah dikommpilasikan untuk digunakan atau dibuat (tergantung pada apakah /Yu
atau /Yc
ditentukan). Jika nama file tidak berisi spesifikasi jalur, file header yang telah dikommpilasikan diasumsikan berada dalam direktori yang sama dengan file sumber.
Jika file C atau C++ berisi hdrstop
pragma saat dikompilasi dengan /Yc
, pengkompilasi menyimpan status kompilasi hingga lokasi pragma. Status terkompilasi dari kode apa pun yang mengikuti pragma tidak disimpan.
Gunakan nama file untuk memberi nama file header yang telah dikompilasi di mana status yang dikompilasi disimpan. Spasi antara hdrstop
dan nama file bersifat opsional. Nama file yang ditentukan dalam hdrstop
pragma adalah string, dan tunduk pada batasan string C atau C++ apa pun. Secara khusus, Anda harus mengapitnya dalam tanda kutip dan menggunakan karakter escape (garis miring terbalik, \
) untuk menentukan nama direktori. Contohnya:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Nama file header yang telah dikompresi ditentukan sesuai dengan aturan berikut, dalam urutan prioritas:
Argumen ke
/Fp
opsi pengkompilasiArgumen nama file ke
#pragma hdrstop
Nama dasar file sumber dengan ekstensi PCH
Jika tidak ada /Yc
opsi dan /Yu
atau hdrstop
pragma yang menentukan nama file, nama dasar file sumber digunakan sebagai nama dasar file header yang telah dikompresi sebelumnya.
Anda juga dapat menggunakan perintah praproses untuk melakukan penggantian makro sebagai berikut:
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Aturan berikut mengatur tempat hdrstop
pragma dapat ditempatkan:
Ini harus muncul di luar data atau deklarasi atau definisi fungsi apa pun.
Ini harus ditentukan dalam file sumber, bukan dalam file header.
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
// ... // Some code to display string
}
#pragma hdrstop
Dalam contoh ini, hdrstop
pragma muncul setelah dua file disertakan dan fungsi sebaris telah ditentukan. Lokasi ini mungkin, pada awalnya, tampaknya menjadi penempatan ganjil untuk pragma. Namun, pertimbangkan bahwa menggunakan opsi prakompilasi manual, /Yc
dan /Yu
, dengan hdrstop
pragma memungkinkan Anda untuk melakukan prakompilasi seluruh file sumber, atau bahkan kode sebaris. Pengkompilasi Microsoft tidak membatasi Anda untuk melakukan prakompilasi hanya deklarasi data.