Bagikan melalui


#include direktif (C/C++)

Memberi tahu prapemroscessor untuk menyertakan konten file tertentu pada titik di mana direktif muncul.

Sintaks

#include "spesifikasi jalur "
#include <spesifikasi jalur >

Keterangan

Anda dapat mengatur definisi konstanta dan makro ke dalam file yang disertakan (juga dikenal sebagai file header) lalu menggunakan #include direktif untuk menambahkannya ke file sumber apa pun. Sertakan file juga berguna untuk menggabungkan deklarasi variabel eksternal dan jenis data kompleks. Jenis dapat ditentukan dan dinamai hanya sekali dalam file include yang dibuat untuk tujuan tersebut.

Spesifikasi jalur adalah nama file yang mungkin secara opsional didahului oleh spesifikasi direktori. Nama file harus menamai file yang ada. Sintaksis spesifikasi jalur tergantung pada sistem operasi tempat program dikompilasi.

Untuk informasi tentang cara mereferensikan rakitan dalam aplikasi C++ yang dikompilasi dengan menggunakan /clr, lihat #using direktif.

Kedua bentuk sintaks menyebabkan direktif #include digantikan oleh seluruh konten file yang ditentukan. Perbedaan antara dua formulir adalah urutan jalur yang dicari prapemroses ketika jalur ditentukan secara tidak lengkap. Tabel berikut ini memperlihatkan perbedaan antara dua formulir sintaksis.

Formulir Sintaks Perbuatan
Formulir yang dikutip Prapemroses mencari sertakan file dalam urutan ini:

1) Dalam direktori yang sama dengan file yang berisi #include pernyataan.

2) Dalam direktori yang saat ini dibuka termasuk file, dalam urutan terbalik di mana mereka dibuka. Pencarian dimulai di direktori induk menyertakan file dan berlanjut ke atas melalui direktori kakek-nenek mana pun termasuk file.

3) Sepanjang jalur yang ditentukan oleh setiap /I opsi pengkompilasi.

4) Sepanjang jalur yang ditentukan oleh INCLUDE variabel lingkungan.
Formulir Angle-bracket Prapemroses mencari sertakan file dalam urutan ini:

1) Sepanjang jalur yang ditentukan oleh setiap /I opsi pengkompilasi.

2) Ketika kompilasi terjadi pada baris perintah, di sepanjang jalur yang ditentukan oleh INCLUDE variabel lingkungan.

Preprocessor berhenti mencari segera setelah menemukan file yang memiliki nama yang diberikan. Jika Anda mengapit spesifikasi jalur yang lengkap dan tidak ambigu untuk file include antara tanda kutip ganda (" "), prapemroses hanya mencari spesifikasi jalur tersebut dan mengabaikan direktori standar.

Jika nama file yang diapit dalam tanda kutip ganda adalah spesifikasi jalur yang tidak lengkap, prapemroses terlebih dahulu mencari direktori file induk . File induk adalah file yang berisi direktif #include . Misalnya, jika Anda menyertakan file bernama file2 dalam file bernama file1, file1 adalah file induk.

Sertakan file dapat ditumpuk: Direktif #include dapat muncul dalam file yang dinamai oleh arahan lain#include. Misalnya, file2 dapat menyertakan file3. Dalam hal ini, file1 masih akan menjadi induk file2, tetapi itu akan menjadi kakek-nenek file3.

Saat menyertakan file yang ditumpuk dan ketika kompilasi terjadi pada baris perintah, pencarian direktori dimulai di direktori file induk. Kemudian dilanjutkan melalui direktori file kakek-nenek apa pun. Artinya, pencarian dimulai relatif terhadap direktori yang berisi sumber yang saat ini sedang diproses. Jika file tidak ditemukan, pencarian berpindah ke direktori yang ditentukan oleh /I opsi pengkompilasi (Tambahan sertakan direktori ). Terakhir, direktori yang ditentukan oleh INCLUDE variabel lingkungan dicari.

Dalam lingkungan pengembangan Visual Studio, INCLUDE variabel lingkungan diabaikan. Nilai yang ditentukan dalam properti proyek untuk menyertakan direktori digunakan sebagai gantinya. Untuk informasi selengkapnya tentang cara mengatur direktori sertakan di Visual Studio, lihat Menyertakan Direktori dan Direktori Sertakan Tambahan.

Contoh ini menunjukkan penyertaan file dengan menggunakan tanda kurung sudut:

#include <stdio.h>

Contoh menambahkan konten file bernama stdio.h ke program sumber. Kurung sudut menyebabkan prapemroses mencari direktori yang ditentukan oleh INCLUDE variabel lingkungan untuk stdio.h, setelah mencari direktori yang ditentukan oleh /I opsi pengompilasi.

Contoh berikutnya menunjukkan penyertaan file dengan menggunakan formulir yang dikutip:

#include "defs.h"

Contoh menambahkan konten file yang ditentukan oleh defs.h ke program sumber. Tanda kutip berarti bahwa praprosesor terlebih dahulu mencari direktori yang berisi file sumber induk.

Bersarang sertakan file dapat berlanjut hingga 10 tingkat. Ketika pemrosesan berlapis #include selesai, prapemrosesan terus menyisipkan induk yang mengapit sertakan file ke dalam file sumber asli.

Microsoft-specific

Untuk menemukan file sumber yang akan disertakan, prapemroses terlebih dahulu mencari direktori yang ditentukan oleh /I opsi pengkompilasi. /I Jika opsi tidak ada, atau jika gagal, preproscessor INCLUDE menggunakan variabel lingkungan untuk menemukan file yang disertakan dalam tanda kurung sudut. Variabel INCLUDE lingkungan dan /I opsi pengkompilasi dapat berisi beberapa jalur, dipisahkan oleh titik koma (;). Jika lebih dari satu direktori muncul sebagai bagian /I dari opsi atau dalam INCLUDE variabel lingkungan, prapemroses mencarinya dalam urutan munculnya.

Misalnya, perintah

CL /ID:\msvc\include myprog.c

menyebabkan prapemroscessor mencari direktori D:\msvc\include\ untuk menyertakan file seperti stdio.h. Perintah

SET INCLUDE=D:\msvc\include
CL myprog.c

memiliki efek yang sama. Jika kedua set pencarian gagal, kesalahan kompilator fatal dihasilkan.

Jika nama file sepenuhnya ditentukan untuk file include yang memiliki jalur yang menyertakan titik dua (misalnya, F:\MSVC\SPECIAL\INCL\TEST.H), praproscessor mengikuti jalur.

Untuk menyertakan file yang ditentukan sebagai #include "path-spec", pencarian direktori dimulai di direktori file induk lalu dilanjutkan melalui direktori file kakek-nenek apa pun. Artinya, pencarian mulai relatif terhadap direktori yang berisi file sumber yang sedang diproses. Jika tidak ada file kakek-nenek dan file masih tidak ditemukan, pencarian berlanjut seolah-olah nama file diapit dalam tanda kurung sudut.

END Microsoft-specific

Lihat juga

Arahan pra-prosesor
/I (Tambahan termasuk direktori)