#─░nclude <filename> ve #include ÔÇťdosyaad─▒ÔÇŁ aras─▒ndaki fark nedir?


Al─▒nan cevaba git


C ve C ++ programlama dillerinde, include a┼ča─č─▒daki gibi a├ž─▒ ifadelerini kullanmakla ifadede al─▒nt─▒ kullanmak aras─▒ndaki fark nedir?

  1. #include <filename>
  2. #include "filename"

2171









Cevap say─▒s─▒n─▒ say: 27






Uygulamada fark, ├Âni┼člemcinin dahil edilen dosyay─▒ arad─▒─č─▒ yerdedir.

─░├žin #include <filename> normalde arama dizinleri bir uygulama ba─č─▒ml─▒ bir ┼čekilde ├Âni┼člemci aramalar─▒, derleyici / IDE taraf─▒ndan belirlenmi┼č ├Ânceden. Bu y├Ântem normalde standart k├╝t├╝phane ba┼čl─▒k dosyalar─▒n─▒ dahil etmek i├žin kullan─▒l─▒r.

─░├žin #include "filename" sonra y├Ânergesini i├žeren dosyayla ayn─▒ dizinde ilk ve ├Âni┼člemci aramalar i├žin kullan─▒lan arama yolunu izler #include <filename> formu. Bu y├Ântem normalde programc─▒ tan─▒ml─▒ ba┼čl─▒k dosyalar─▒n─▒ dahil etmek i├žin kullan─▒l─▒r.

GCC dok├╝mantasyonunda arama yollar─▒ndaki daha eksiksiz bir a├ž─▒klama mevcuttur .


1285







Bilmenin tek yolu uygulaman─▒z─▒n belgelerini okumakt─▒r.

Olarak C─▒ standart b├Âl├╝m 6.10.2, 2-4 durumunu paragraf:

  • Formun ├Ân i┼čleme direktifleri

     #include <h-char-sequence> new-line
     

    ve s─▒n─▒rlay─▒c─▒lar aras─▒nda belirtilen s─▒ra ile benzersiz olarak tan─▒mlanm─▒┼č bir ba┼čl─▒k i├žin uygulama taraf─▒ndan tan─▒mlanm─▒┼č yerler dizisini arar ve bu direktifin ba┼čl─▒─č─▒n t├╝m i├žeri─či taraf─▒ndan de─či┼čtirilmesine neden olur . Yerlerin nas─▒l belirtildi─či veya tan─▒mland─▒─č─▒ ba┼čl─▒k uygulama taraf─▒ndan tan─▒mlan─▒r. < >

  • Formun ├Ân i┼čleme direktifleri

     #include "q-char-sequence" new-line
     

    s─▒n─▒rlay─▒c─▒lar aras─▒nda belirtilen s─▒ra ile tan─▒mlanan kaynak dosyan─▒n i├žeri─činin tamam─▒ taraf─▒ndan bu y├Ânergenin de─či┼čtirilmesine neden olur " . Adland─▒r─▒lm─▒┼č kaynak dosya , uygulama tan─▒ml─▒ bir ┼čekilde aran─▒r. Bu arama desteklenmiyorsa veya arama ba┼čar─▒s─▒z olursa, y├Ânerge okunmu┼č gibi yeniden i┼členir

     #include <h-char-sequence> new-line
     

    > orijinal direktifin i├žerdi─či ayn─▒ s─▒ra ile ( varsa karakterler dahil )

  • Formun ├Ân i┼čleme direktifleri

     #include pp-tokens new-line
     

    (bu ├Ânceki iki formdan biriyle uyu┼čmuyor) izin verilir. include Direktiften sonraki ├Ân i┼čleme belirte├žleri normal metinlerdeki gibi i┼členir. (┼×u anda bir makro ad─▒ olarak tan─▒mlanm─▒┼č olan her tan─▒mlay─▒c─▒, yerine, ├Ânceden i┼čleyen belirte├žlerin de─či┼čtirildi─či liste ile de─či┼čtirilir.) T├╝m de─či┼čikliklerden sonra ortaya ├ž─▒kan y├Ânerge, ├Ânceki iki formdan biriyle e┼čle┼čmelidir. < Bir > ├Ân i┼čleme token ├žifti veya bir ├žift " karakter aras─▒ndaki bir ├Ân i┼čleme tokeni dizisinin, ├Ân i┼čleme tokeni tek bir ba┼čl─▒k ad─▒yla birle┼čtirildi─či metot , uygulama tan─▒mlan─▒r.

Tan─▒mlar:

  • h-char: kaynak karakter k├╝mesinin yeni sat─▒r karakteri ve >

  • q-char: kaynak karakter k├╝mesinin yeni sat─▒r karakteri ve "


675







<─░le> aras─▒ndaki karakter dizileri benzersiz olarak mutlaka bir dosya olmayan bir ba┼čl─▒─ča i┼čaret eder. Uygulamalar, karakter s─▒ras─▒n─▒ diledikleri gibi kullanmakta hemen hemen serbesttir. (├ço─čunlukla, bununla birlikte, yaln─▒zca dosya ad─▒ olarak kabul edin ve di─čer postalarda oldu─ču gibi include yolunda bir arama yap─▒n .)

E─čer #include "file" form verilmi┼č isimde bir dosya i├žin, uygulama ilk g├Âr├╝n├╝yor kullan─▒l─▒r destekleniyorsa. Desteklenmiyorsa (desteklenmiyorsa) veya arama ba┼čar─▒s─▒z olursa, uygulama di─čer ( #include <file> ) formu kullan─▒lm─▒┼č gibi davran─▒r .

Ayr─▒ca, ├╝├ž├╝nc├╝ bir form mevcuttur ve #include y├Ânerge yukar─▒daki formlardan hi├žbiriyle e┼čle┼čmedi─činde kullan─▒l─▒r . Bu formda, baz─▒ temel ├Ân i┼čleme (makro geni┼člemesi gibi) #include direktifin "i┼členenleri" ├╝zerinde yap─▒l─▒r ve sonucun di─čer iki formdan biriyle e┼čle┼čmesi beklenir.


260


2008-09-08





Buradaki baz─▒ iyi cevaplar, C standard─▒na at─▒fta bulunur ancak POSIX standard─▒n─▒, ├Âzellikle c99 (├Ârn. C derleyici) komutunun ├Âzel davran─▒┼č─▒n─▒ unuttu .

G├Âre A├ž─▒k Grubu Baz ├ľzellikleri Issue 7 ,

-I dizini

─░simleri taraf─▒ndan adland─▒r─▒lm─▒┼č dizinde bakmak i├žin mutlak pathnames olmayan ba┼čl─▒klar i├žin arama i├žin algoritma de─či┼čtirme dizin zamanki yerlerde bakmadan ├Ânce yol ad─▒. Bu nedenle, adlar─▒ ├žift t─▒rnak i├žine al─▒nm─▒┼č ("") ba┼čl─▒klar ilk ├Ânce #include sat─▒rl─▒ dosya dizininde, daha sonra -I se├ženeklerinde belirtilen dizinlerde ve normal yerlerde en son aran─▒r . Adlar─▒ a├ž─▒l─▒ ayra├žlar ("<>") i├žine al─▒nm─▒┼č ba┼čl─▒klar i├žin, ba┼čl─▒k yaln─▒zca -I se├ženeklerinde ve daha sonra normal yerlerde adland─▒r─▒lm─▒┼č dizinlerde aranacakt─▒r . -I se├ženeklerinde yer alan dizinler belirtilen s─▒rada aranacakt─▒r. Uygulamalar bu se├žene─čin en az on ├Ârne─čini tek bir c99 komut ├ža─čr─▒s─▒nda destekleyecektir.

Bu nedenle, POSIX uyumlu bir ortamda, POSIX uyumlu bir C derleyicisine sahip, ilk ├Ânce #include "file.h" arama yapmas─▒ muhtemeldir ; bununla birlikte, ifadenin bulundu─ču dosya nerededir , b├╝y├╝k olas─▒l─▒kla, ilk olarak arama yapacakt─▒r , sisteminizin nerede oldu─ču ba┼čl─▒klar i├žin normal yerler (POSIX taraf─▒ndan tan─▒mlanmam─▒┼č gibi g├Âr├╝n├╝yor). ./file.h . #include #include <file.h> /usr/include/file.h /usr/include


104







GCC belgeleri , ikisi aras─▒ndaki fark hakk─▒nda ┼čunlar─▒ s├Âyl├╝yor :

Hem kullan─▒c─▒ hem de sistem ba┼čl─▒k dosyalar─▒ ├Ân i┼čleme direktifini kullanarak eklenir ÔÇś#includeÔÇÖ . ─░ki ├že┼čidi vard─▒r:

#include <file>

Bu de─či┼čken sistem ba┼čl─▒k dosyalar─▒ i├žin kullan─▒l─▒r. Standart bir sistem dizinleri listesinde dosya adl─▒ bir dosyay─▒ arar. Dizinleri bu listeye -I se├žene─či ile haz─▒rlayabilirsiniz (bkz. ├ça─č─▒rma ).

#include "file"

Bu de─či┼čken kendi program─▒n─▒z─▒n ba┼čl─▒k dosyalar─▒ i├žin kullan─▒l─▒r. ├ľnce ge├žerli dosyay─▒ i├žeren dizinde, ard─▒ndan al─▒nt─▒ dizinlerinde ve daha sonra kullan─▒lan dizinlerde dosya ad─▒ verilen bir dosyay─▒ arar <file> . Dizinleri, -iquote se├ženekle teklif dizinleri listesine haz─▒rlayabilirsiniz . ÔÇś#includeÔÇÖ Al─▒nt─▒ i┼čaretleriyle veya k├Â┼čeli parantezlerle s─▒n─▒rland─▒r─▒l─▒p ayr─▒lmad─▒─č─▒n─▒n arg├╝man─▒, yorumlar─▒n tan─▒nmamas─▒ ve makro adlar─▒ geni┼čletilmemesi i├žin sabit bir dize gibi davran─▒r. B├Âylece, #include <x/*y> adland─▒r─▒lm─▒┼č bir sistem ba┼čl─▒k dosyas─▒n─▒n eklenmesini belirtir x/*y .

Bununla birlikte, dosyada ters e─čik ├žizgiler varsa, bunlar ka├ž─▒┼č karakterleri de─čil normal metin karakterleri olarak kabul edilir. C'deki dize sabitlerine uygun karakter ka├ž─▒┼č dizilerinin hi├žbiri i┼členmez. Bu nedenle, #include "x\n\\y" ├╝├ž ters e─čik ├žizgi i├žeren bir dosya ad─▒n─▒ belirtir. (Baz─▒ sistemler '\' ├Â─česini bir yol ad─▒ ay─▒r─▒c─▒ olarak yorumlar. Bunlar─▒n hepsi de ÔÇś/ÔÇÖ ayn─▒ ┼čekilde yorumlar. Yaln─▒zca kullan─▒m─▒ en ta┼č─▒nabilir olan─▒d─▒r ÔÇś/ÔÇÖ .)

Dosya ad─▒ndan sonra sat─▒rda herhangi bir ┼čey (yorumlar d─▒┼č─▒nda) varsa bu bir hatad─▒r.


44







O yapar:

 "mypath/myfile" is short for ./mypath/myfile
 

ile . dosya rehberi ya da yer #include i├žerdi─či ve / veya derleyici mevcut ├žal─▒┼čma dizini ve / veya default_include_paths

ve

 <mypath/myfile> is short for <defaultincludepaths>/mypath/myfile
 

E─čer ./ i├žindedir <default_include_paths> , o zaman bir fark yaratmaz.

E─čer mypath/myfile ba┼čka isimli dizini dahil, davran─▒┼č tan─▒mlanmam─▒┼č.


43







<file> Dahil arama yapman─▒n ├Ân i┼člemcisi s├Âyler -I dizinleri ve ├Ânceden tan─▒mlanm─▒┼č dizinlerde ilk .c dosyas─▒n─▒n dizinde sonra. "file" Ge├žti─či kaynak dosyan─▒n dizin aramak i├žin ├Ân i┼člemci s├Âyler ilk ve ard─▒ndan geri -I ve ├Ânceden tan─▒mlanm─▒┼č. T├╝m hedefler zaten aran─▒r, yaln─▒zca arama s─▒ras─▒ farkl─▒d─▒r.

2011 standard─▒ ├žo─čunlukla "16.2 Kaynak dosya dahil etme" b├Âl├╝m├╝ndeki dosyalar─▒ i├žermektedir.

2 Formun ├Ân i┼čleme talimat─▒

# include <h-char-sequence> new-line

<ve> s─▒n─▒rlay─▒c─▒lar─▒ aras─▒nda belirtilen s─▒ra ile benzersiz bir ┼čekilde tan─▒mlanm─▒┼č bir ba┼čl─▒k i├žin uygulama tan─▒ml─▒ yerler dizisini arar ve bu direktifin ba┼čl─▒─č─▒n t├╝m i├žeri─či taraf─▒ndan de─či┼čtirilmesine neden olur. Yerlerin nas─▒l belirtildi─či veya tan─▒mland─▒─č─▒ ba┼čl─▒k uygulama taraf─▒ndan tan─▒mlan─▒r.

3 Formun ├Ân i┼čleme talimat─▒

# include "q-char-sequence" new-line

Bu y├Ânergenin "s─▒n─▒rlay─▒c─▒lar" aras─▒nda belirtilen s─▒ra ile belirtilen kaynak dosya i├žeri─činin tamam─▒ taraf─▒ndan de─či┼čtirilmesine neden olur. Adland─▒r─▒lm─▒┼č kaynak dosya uygulama taraf─▒ndan tan─▒mlanm─▒┼č bir ┼čekilde aran─▒r. Bu arama desteklenmezse veya arama ba┼čar─▒s─▒z olursa , y├Ânerge okunuyormu┼č gibi yeniden i┼členir

# include <h-char-sequence> new-line

orijinal direktiften ayn─▒ i├žerdi─či s─▒ra ile (varsa> karakterler dahil).

Dosyan─▒n bulunamamas─▒ durumunda "xxx" formun bozundu─čunu unutmay─▒n <xxx> . Gerisi uygulama tan─▒ml─▒d─▒r.


33


2008-09-03





Standart olarak - evet, onlar farkl─▒:

  • Formun ├Ân i┼čleme direktifleri

     #include <h-char-sequence> new-line
     

    < ve > s─▒n─▒rlay─▒c─▒lar aras─▒nda belirtilen s─▒ra ile benzersiz olarak tan─▒mlanm─▒┼č bir ba┼čl─▒k i├žin uygulama taraf─▒ndan tan─▒mlanm─▒┼č yerler dizisini arar ve bu direktifin ba┼čl─▒─č─▒n t├╝m i├žeri─či taraf─▒ndan de─či┼čtirilmesine neden olur. Yerlerin nas─▒l belirtildi─či veya tan─▒mland─▒─č─▒ ba┼čl─▒k uygulama taraf─▒ndan tan─▒mlan─▒r.

  • Formun ├Ân i┼čleme direktifleri

     #include "q-char-sequence" new-line
     

    " s─▒n─▒rlay─▒c─▒lar aras─▒nda belirtilen s─▒ra ile tan─▒mlanan kaynak dosyan─▒n i├žeri─činin tamam─▒ taraf─▒ndan bu y├Ânergenin de─či┼čtirilmesine neden olur . Adland─▒r─▒lm─▒┼č kaynak dosya, uygulama tan─▒ml─▒ bir ┼čekilde aran─▒r. Bu arama desteklenmiyorsa veya arama ba┼čar─▒s─▒z olursa, y├Ânerge okunmu┼č gibi yeniden i┼členir

     #include <h-char-sequence> new-line
     

    > orijinal direktifin i├žerdi─či ayn─▒ s─▒ra ile ( varsa karakterler dahil )

  • Formun ├Ân i┼čleme direktifleri

     #include pp-tokens new-line
     

    (bu ├Ânceki iki formdan biriyle uyu┼čmuyor) izin verilir. include Direktiften sonraki ├Ân i┼čleme belirte├žleri normal metinlerdeki gibi i┼členir. (┼×u anda bir makro ad─▒ olarak tan─▒mlanm─▒┼č olan her tan─▒mlay─▒c─▒, yerine, ├Ânceden i┼čleyen belirte├žlerin de─či┼čtirildi─či liste ile de─či┼čtirilir.) T├╝m de─či┼čikliklerden sonra ortaya ├ž─▒kan y├Ânerge, ├Ânceki iki formdan biriyle e┼čle┼čmelidir. < Bir > ├Ân i┼čleme token ├žifti veya bir ├žift " karakter aras─▒ndaki bir ├Ân i┼čleme tokeni dizisinin, ├Ân i┼čleme tokeni tek bir ba┼čl─▒k ad─▒yla birle┼čtirildi─či metot , uygulama tan─▒mlan─▒r.

Tan─▒mlar:

  • h-char: kaynak karakter k├╝mesinin yeni sat─▒r karakteri ve >

  • q-char: kaynak karakter k├╝mesinin yeni sat─▒r karakteri ve "

Standard─▒n uygulama taraf─▒ndan tan─▒mlanm─▒┼č davran─▒┼člar aras─▒nda herhangi bir ili┼čki olmad─▒─č─▒n─▒ unutmay─▒n. ─░lk form, bir uygulama tan─▒ml─▒ bi├žimde, di─čerinde (muhtemelen ba┼čka) bir uygulama tan─▒ml─▒ bi├žimde arama yapar. Standart ayr─▒ca belirli dahil dosyalar─▒n─▒n da bulunaca─č─▒n─▒ belirtir (├Ârne─čin, <stdio.h> ).

Resmen, derleyicinizin kullan─▒m k─▒lavuzunu okuman─▒z gerekir, ancak normalde (geleneklere g├Âre) #include "..." form #include , ilk ├Ânce bulundu─ču dosyan─▒n dizinini ve daha sonra #include <...> formun arad─▒─č─▒ dizinleri (├Ârne─čin yol, ├Ârne─čin sistem ba┼čl─▒klar─▒) arar. ).


18







Harika cevaplar i├žin te┼čekk├╝rler, esp. Adam Stelmaszczyk ve piCookie ve aib.

Bir├žok programc─▒lar gibi ben de kullanman─▒n gayri kural─▒n─▒ kullanm─▒┼čt─▒r "myApp.hpp" uygulamaya ├Âzel dosyalar i├žin formu ve <libHeader.hpp> k├╝t├╝phane ve derleyici sistem dosyalar─▒ i├žin formu, belirtilen yani dosyalar─▒ /I ve INCLUDE standart y─▒llar d├╝┼č├╝nme i├žin ortam de─či┼čkeni.

Bununla birlikte, C standard─▒, arama s─▒ras─▒n─▒n uygulamaya ├Âzel oldu─čunu ve ta┼č─▒nabilirli─či karma┼č─▒k hale getirebilece─čini belirtir. Sorunlar─▒ daha k├Ât├╝ hale getirmek i├žin, i├žerme dosyalar─▒n─▒n nerede oldu─čunu otomatik olarak belirleyen s─▒k─▒┼čmay─▒ kullan─▒r─▒z. Dahil etme dosyalar─▒n─▒z i├žin g├Âreli veya mutlak yollar kullanabilirsiniz. yani

 #include "../../MyProgDir/SourceDir1/someFile.hpp"
 

MSVS'nin eski s├╝r├╝mleri ├žift e─čik ├žizgi (\\) gerektiriyordu, ancak bu art─▒k gerekli de─čil. Ne zaman de─či┼čti─čini bilmiyorum. 'Nix ile uyumluluk i├žin sadece e─čik ├žizgi kullan─▒n (Windows bunu kabul edecektir).

Bu konuda ger├žekten endi┼čeleniyorsan─▒z "./myHeader.h" , kaynak kodla ayn─▒ dizinde bulunan bir dahil etme dosyas─▒ i├žin kullan─▒n (┼ču anki, ├žok b├╝y├╝k projemde bir ├žift kopya var, da─č─▒lm─▒┼č dosya adlar─▒n─▒ i├žerir - ger├žekten bir yap─▒land─▒rma y├Ânetimi sorunu).

─░┼čte rahatl─▒─č─▒n─▒z i├žin buraya kopyalanan MSDN a├ž─▒klamas─▒ var).

Al─▒nt─▒lanan form

├ľni┼člemci, ┼ču s─▒rayla dahil etme dosyalar─▒n─▒ arar:

  1. #─░nclude ifadesini i├žeren dosyayla ayn─▒ dizinde.
  2. Halen a├ž─▒lm─▒┼č olan dizinlere, a├ž─▒ld─▒klar─▒ s─▒rayla dosyalar─▒ i├žerir
    . Arama, ana dosya i├žeren dosyan─▒n
    dizininde ba┼člar ve herhangi bir b├╝y├╝kbaba veya b├╝y├╝k dosya i├žeren dosya dizinleri boyunca yukar─▒ do─čru devam eder.
  3. Her /I derleyici se├žene─či taraf─▒ndan belirtilen yol boyunca .
  4. INCLUDE Ortam de─či┼čkeni taraf─▒ndan belirtilen yollar boyunca .

A├ž─▒l─▒ ayra├ž formu

├ľni┼člemci, ┼ču s─▒rayla dahil etme dosyalar─▒n─▒ arar:

  1. Her /I derleyici se├žene─či taraf─▒ndan belirtilen yol boyunca .
  2. Derleme komut sat─▒r─▒nda, INCLUDE ortam de─či┼čkeni taraf─▒ndan belirtilen yollar boyunca ger├žekle┼čti─činde .

15







#include <file.h> derleyiciye ba┼čl─▒─č─▒ "i├žerir" dizininde arama yapmas─▒n─▒ s├Âyler, ├Ârne─čin MinGW i├žin derleyici file.h C: \ MinGW \ include \ veya derleyicinizin kurulu oldu─ču yerde arama yapar .

#include "file" derleyiciye ge├žerli dizini (├Ârne─čin kaynak dosyan─▒n bulundu─ču dizini) aramas─▒n─▒ s├Âyler file .

-I GCC bayra─č─▒n─▒, a├ž─▒l─▒ parantez i├žeren bir i├žerme ile kar┼č─▒la┼čt─▒─č─▒nda, dizindeki ba┼čl─▒klar─▒ da aramas─▒ gerekti─čini s├Âylemek i├žin kullanabilirsiniz -I . GCC, bayraktan sonra dizine sanki dizinmi┼č gibi davranacakt─▒r includes .

├ľrne─čin, myheader.h kendi dizininizde ad─▒ verilen bir dosyan─▒z #include <myheader.h> varsa, bayrakl─▒ GCC'yi arad─▒ysan─▒z -I . (ge├žerli dizinde bulunup bulunmayaca─č─▒n─▒ g├Âsteren) oldu─čunu s├Âyleyebilirsiniz.

-I Bayrak olmadan, #include "myheader.h" dosyay─▒ eklemek i├žin kullanmak veya derlemenizin dizinine gitmek myheader.h zorunda kalacaks─▒n─▒z include .


15







En az─▒ndan GCC s├╝r├╝m <= 3.0 i├žin a├ž─▒l─▒ ayra├ž formu, dahil edilen dosya ile dahil olan aras─▒nda bir ba─č─▒ml─▒l─▒k olu┼čturmaz.

Dolay─▒s─▒yla, ba─č─▒ml─▒l─▒k kurallar─▒ olu┼čturmak istiyorsan─▒z (├Ârnek i├žin GCC -M se├žene─čini kullanarak), ba─č─▒ml─▒l─▒k a─čac─▒na dahil edilmesi gereken dosyalar i├žin belirtilen formu kullanman─▒z gerekir.

(Bkz. Http://gcc.gnu.org/onlinedocs/cpp/Invocation.html )


14







─░├žin #include "" bir derleyici normalde i├žerdi─čini i├žerir ve daha sonra di─čer klas├Ârler dosyan─▒n klas├Âr├╝n├╝ arar. ─░├žin #include <> derleyici ge├žerli dosya klas├Âr├╝n├╝ aramaz.


13







#─░nclude <dosyaad─▒> kulland─▒─č─▒n─▒zda, ├Ân i┼člemci C \ C ++ ba┼čl─▒k dosyalar─▒ dizinindeki dosyay─▒ arar (stdio.h \ cstdio, string, vector, vs.). Ancak, #include "dosyaad─▒" n─▒ kulland─▒─č─▒n─▒zda: ilk ├Ânce ├Ân-i┼člemci, ge├žerli dizindeki dosyay─▒ ar─▒yor ve burada de─čilse - C \ C ++ ba┼čl─▒k dosyalar─▒n─▒n dizininde.


13







K├Â┼čeli parantez i├žeren bir #include, dahil edilecek dosya i├žin "uygulamaya ba─čl─▒ yerlerin listesini" (bu, "sistem ba┼čl─▒klar─▒" demenin ├žok karma┼č─▒k bir yoludur) arayacakt─▒r.

T─▒rnakl─▒ bir #include, sadece bir dosyay─▒ arayacakt─▒r (ve "uygulamaya ba─čl─▒ bir ┼čekilde", bleh). Bu, normal ─░ngilizce'de, ├╝zerine att─▒─č─▒n─▒z yolu / dosya ad─▒n─▒ uygulamaya ├žal─▒┼čacak ve ba┼čka bir ┼čekilde bir sistem yolu haz─▒rlamayacak veya kurcalamayacakt─▒r demektir.

Ayr─▒ca, #include "" ba┼čar─▒s─▒z olursa, standart taraf─▒ndan #include <> olarak yeniden okunur.

Gcc dok├╝mantasyon gcc ├Âzg├╝ de─čil standart olmalar─▒na ra─čmen, ISO standartlar─▒ avukat tarz─▒ konu┼čmaktansa anlamak ├žok daha kolay bir (derleyici ├Âzel) a├ž─▒klamas─▒ vard─▒r.


10







  • #include <> ├Ânceden tan─▒mlanm─▒┼č ba┼čl─▒k dosyalar─▒ i├žindir

E─čer ├╝stbilgi dosyas─▒ ├Ânceden tan─▒mlanm─▒┼čsa, ├╝stbilgi dosyas─▒ ad─▒n─▒ a├ž─▒sal ayra├žlar i├žinde yazman─▒z yeterlidir ve ┼č├Âyle g├Âr├╝n├╝r (├Ânceden tan─▒mlanm─▒┼č bir ├╝stbilgi dosya ad─▒m─▒z varsa):

 #include <iostream>
 
  • #include " " Programc─▒ tan─▒mlayan ba┼čl─▒k dosyalar─▒ i├žindir

Siz (programlay─▒c─▒) kendi ba┼čl─▒k dosyan─▒z─▒ yazd─▒ysan─▒z, ba┼čl─▒k dosyas─▒n─▒n ad─▒n─▒ t─▒rnak i├žinde yazars─▒n─▒z. Bu nedenle, ad─▒ verilen bir ba┼čl─▒k dosyas─▒ yazd─▒─č─▒n─▒z─▒ varsayal─▒m myfile.h , o zaman bu dosyay─▒ i├žermek i├žin include y├Ânergesini nas─▒l kullanaca─č─▒n─▒za bir ├Ârnek:

 #include "myfile.h"
 

10







Buradaki cevaplar─▒n ├žo─ču, dosyay─▒ bulmak i├žin derleyicinin arayaca─č─▒ yollara odaklanmaktad─▒r. ├ço─ču derleyicinin yapt─▒─č─▒ bu olsa da, uygun bir derleyicinin standart ba┼čl─▒klar─▒n etkileriyle ├Ânceden programlanmas─▒na ve #include <list> anahtar olarak ele al─▒nmas─▒na izin verilir ve bunun bir dosya olarak bulunmas─▒na gerek yoktur.

Bu tamamen varsay─▒msal de─čildir. Bu ┼čekilde ├žal─▒┼čan en az bir derleyici var. Kullan─▒m─▒ #include <xxx> yaln─▒zca standart ba┼čl─▒klar─▒yla ├Ânerilir.


8







 #include "filename" // User defined header
#include <filename> // Standard library header.
 

├ľrnek:

Buradaki dosya ad─▒ Seller.h :

 #ifndef SELLER_H     // Header guard
#define SELLER_H     // Header guard

#include <string>
#include <iostream>
#include <iomanip>

class Seller
{
    private:
        char name[31];
        double sales_total;

    public:
        Seller();
        Seller(char[], double);
        char*getName();

#endif
 

S─▒n─▒f uygulamas─▒nda (├Ârne─čin, Seller.cpp dosyay─▒ kullanacak di─čer dosyalarda Seller.h ), kullan─▒c─▒ taraf─▒ndan tan─▒mlanan ba┼čl─▒k ┼čimdi a┼ča─č─▒daki ┼čekilde dahil edilmelidir:

 #include "Seller.h"
 

8







 #include <abc.h>
 

standart k├╝t├╝phane dosyalar─▒n─▒ dahil etmek i├žin kullan─▒l─▒r. B├Âylece derleyici standart k├╝t├╝phane ba┼čl─▒klar─▒n─▒n bulundu─ču yerleri kontrol edecektir.

 #include "xyz.h"
 

derleyiciye kullan─▒c─▒ tan─▒ml─▒ ba┼čl─▒k dosyalar─▒n─▒ eklemesini s├Âyleyecektir. B├Âylece derleyici bu ba┼čl─▒k dosyalar─▒n─▒ ge├žerli klas├Âr veya -I tan─▒ml─▒ klas├Ârlerde kontrol edecektir .


8







C ++ 'da iki ┼čekilde bir dosya ekleyin:

Bunlardan ilki, ├Âni┼člemciye dosyay─▒ ├Ânceden tan─▒mlanm─▒┼č varsay─▒lan konumda aramas─▒n─▒ s├Âyleyen #include'dir. Bu konum genellikle dosyalar─▒ i├žeren yolu belirten bir INCLUDE ortam de─či┼čkenidir.

Ve ikinci t├╝r de #include "dosyaad─▒" d─▒r ve ├Âni┼člemciye ├Ânce dosyay─▒ ge├žerli dizinde bulmas─▒n─▒, sonra onu ├Ânceden tan─▒mlanm─▒┼č konumlarda kullan─▒c─▒n─▒n kurdu─čunu s├Âyler.


6







"<dosyaad─▒>" standart C kitapl─▒─č─▒ konumlar─▒n─▒ arar

Oysa "dosya ad─▒", ge├žerli dizinde de arama yapar.

─░deal olarak, standart C kitapl─▒klar─▒ i├žin <...> ve ge├žerli dizinde yaz─▒p yazd─▒─č─▒n─▒z kitapl─▒klar i├žin "..." kullan─▒rs─▒n─▒z.


6







#include <filename> Bir sistem dosyas─▒ sevk edilirken kullan─▒l─▒r. Bu, /usr/include ya da gibi sistem varsay─▒lan konumlar─▒nda bulunabilen bir ba┼čl─▒k dosyas─▒d─▒r /usr/local/include . Ba┼čka bir programa dahil edilmesi gereken kendi dosyalar─▒n─▒z i├žin #include "filename" s├Âzdizimini kullanman─▒z gerekir .


5







Basit genel kural, derleyici ile birlikte gelen ba┼čl─▒k dosyalar─▒n─▒ dahil etmek i├žin a├ž─▒l─▒ parantez kullanmakt─▒r. Di─čer ba┼čl─▒k dosyalar─▒n─▒ dahil etmek i├žin ├žift t─▒rnak kullan─▒n. ├ço─ču derleyici bu ┼čekilde yapar.

1.9 - Ba┼čl─▒k dosyalar─▒ , i┼člemci ├Âncesi direktifleri hakk─▒nda daha ayr─▒nt─▒l─▒ olarak a├ž─▒klar. Acemi bir programc─▒ysan─▒z, bu sayfa t├╝m bunlar─▒ anlaman─▒za yard─▒mc─▒ olacakt─▒r. Buradan ├Â─črendim ve i┼čteyim.


4







#include <filename>

C / C ++ sisteminin ba┼čl─▒k dosyas─▒n─▒ veya derleyici kitapl─▒klar─▒n─▒ kullanmak istedi─činizde kullan─▒l─▒r. Bu k├╝t├╝phaneler stdio.h, string.h, math.h, vb olabilir.

#include "path-to-file/filename"

Proje klas├Âr├╝n├╝zde veya ba┼čka bir yerde bulunan kendi ├Âzel ba┼čl─▒k dosyan─▒z─▒ kullanmak istedi─činizde kullan─▒l─▒r.

├ľni┼člemciler ve ba┼čl─▒k hakk─▒nda daha fazla bilgi i├žin. C - ├ľn ─░┼člemcileri okuyun .


3







Form 1 - #include <xxx>

─░lk olarak, ge├žerli dizinde direktifin ├ža─čr─▒ld─▒─č─▒ yerdeki ba┼čl─▒k dosyas─▒n─▒n varl─▒─č─▒n─▒ arar. Bulamazsa, standart sistem dizinlerinin ├Ânceden yap─▒land─▒r─▒lm─▒┼č listesinde arama yapar.

Form 2 - # "xxx" ifadesini ekleyin

Bu, direktifin ├ža─čr─▒ld─▒─č─▒ yerden, mevcut dizinde ba┼čl─▒k dosyas─▒n─▒n varl─▒─č─▒n─▒ arar.


Tam arama dizini listesi, hedef sisteme, GCC'nin nas─▒l yap─▒land─▒r─▒ld─▒─č─▒na ve nereye y├╝klendi─čine ba─čl─▒d─▒r. GCC derleyicinizin arama dizini listesini -v se├žene─čiyle ├žal─▒┼čt─▒rarak bulabilirsiniz.

Arama yoluna ek dizinleri , ge├žerli dizinden sonra (direktifin al─▒nt─▒ formu i├žin) ve standart sistem dizinlerinin ├Ân├╝nde aranan - I dir'i kullanarak ek dizinler ekleyebilirsiniz .


Temel olarak, "xxx" formu ge├žerli dizinde arama yapmaktan ba┼čka bir ┼čey de─čildir; formu geri d├╝┼čen bulunmazsa


3







Mevcut yap─▒land─▒rmaya ba─čl─▒ olarak, gcc kullanarak sisteminizde arama s─▒ras─▒n─▒ g├Ârmek i├žin a┼ča─č─▒daki komutu uygulayabilirsiniz. Bu komutla ilgili daha fazla bilgiyi burada bulabilirsiniz.

cpp -v /dev/null -o /dev/null

Apple LLVM s├╝r├╝m 10.0.0 (clang-1000.10.44.2)
Hedef: x86_64-apple-darwin18.0.0
Konu modeli: posix InstalledDir: K├╝t├╝phane / Geli┼čtirici / CommandLineTools / usr / bin
"/ K├╝t├╝phane / Geli┼čtirici / CommandLineTools / usr / bin / clang "-cc1-triple x86_64-apple-macosx10.14.0 -Be─čenmi┼č-objc-isa-kullan─▒m─▒ -Werror = deprecated-objc-isa-kullan─▒m─▒ -E-disable-free -disable-llvm-verifier -dosya-de─čer-isimleri -alan -dosya-ad─▒ null -mokokasyon-model-pic -pic-seviye 2 -model-model-posix -mdisable-fp-elim -fno-kat─▒-d├Ân├╝┼č -masm-fiil-s├╝nnet-tablolar -target-cpu penryn-c├╝ce-s├╝tun- info -debugger-tuning = lldb -target-linker-s├╝r├╝m 409.12 -v-kaynak-dir / Kaynak / Direkt├Âr / Geli┼čtirme / CommandLineTools/usr/lib/clang/10.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14 .sdk -I / usr / yerel / include -fdebug-compilation-dir / Kullan─▒c─▒lar / hogstrom -ferror-limit 19 -fessage-uzunluk 80 -ckop-koruyucu 1 -fblocks -fencode-geni┼čletilmi┼č-blok-imza -fobjc-runtime = macosx-10.14.0 -fmax-type-align = 16 -diagnostics-show-se├žene─či -fcolor tan─▒lamalar─▒ tics -traditional-cpp -o - -xc / dev / null
clang -cc1 s├╝r├╝m 10.0.0 (clang-1000.10.44.2) varsay─▒lan hedef x86_64-apple-darwin18.0.0 varolmayan dizini yok sayarak "/ Library / Developer / CommandLineTools / SDKs / MacOSX10.14.sdk / usr / local / include "varolmayan dizini yok sayarak" /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/Library/Frameworks "
#include" ... "aramas─▒ burada ba┼člar:
#include <. ..> arama burada ba┼člar:
/ usr / local / include
/Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include
/ Library / Developer / CommandLineTools / usr / include
/ K├╝t├╝phane / Geli┼čtirici / CommandLineTools / SDK / MacOSX10.14.sdk / usr / include
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks (framework directory)
Arama listesinin sonu.


1







#─░nclude deyimi yazman─▒n iki yolu vard─▒r. Bunlar:

 #include"filename"
#include<filename>
 

Her formun anlam─▒

 #include"mylib.h"
 

Bu komut mylib.h , mevcut dizindeki dosyay─▒ ve ayarlanm─▒┼č arama yolunda belirtilen belirtilen dizin listesini arar.

 #include<mylib.h>
 

Bu komut dosyay─▒ mylib.h yaln─▒zca belirtilen dizinler listesinde arar .

Dahil etme arama yolu, dahil edilen dosya i├žin aranacak dizinlerin listesinden ba┼čka bir ┼čey de─čildir. Farkl─▒ C derleyicileri, arama yolunu farkl─▒ ┼čekillerde ayarlaman─▒za izin verir.


-2







 #include <filename>     (1)     
#include "filename"     (2)
 

#include dosya ad─▒ ile tan─▒mlanan kaynak dosyay─▒, direktifin hemen ard─▒ndan sat─▒rdaki ge├žerli kaynak dosyaya dahil eder.

Y├Ânerge aramalar─▒n─▒n ilk standard─▒ sadece standart olanlar─▒ i├žerir. Standart C ++ k├╝t├╝phanesinin yan─▒ s─▒ra standart C k├╝t├╝phanesi de standart i├žerdi─či dizinleri i├žerir. Standart i├žerme dizinleri, derleyici se├ženekleriyle kullan─▒c─▒ taraf─▒ndan kontrol edilebilir.

─░kinci s├╝r├╝m, ilk ├Ânce ge├žerli dosyan─▒n bulundu─ču dizini arar ve yaln─▒zca dosya bulunamazsa standart i├žerir dizinleri arar.

Dosyan─▒n bulunamamas─▒ durumunda, program yanl─▒┼č olu┼čturulmu┼čtur.


-3



─░lgili yay─▒nlar


Dockerfile'de 'COPY' ve 'ADD' komutlar─▒ aras─▒ndaki fark nedir?

Ruby'de include ve request aras─▒ndaki fark nedir?

Ruby'de include ve extend aras─▒ndaki fark nedir?

Java'daki HashMap ve Map nesneleri aras─▒ndaki fark nedir?

ÔÇťYokÔÇŁ ve ÔÇť== YokÔÇŁ aras─▒ndaki fark nedir

Nesne y├Ânelimli paradigmada gev┼ček kavrama ve s─▒k─▒ kavrama aras─▒ndaki fark nedir?

Java ve C# 'daki int ile Integer aras─▒ndaki fark nedir?

Eclipse hata ay─▒klay─▒c─▒s─▒nda Step Into ile Step Over aras─▒ndaki fark nedir?

Aray├╝z ve s─▒n─▒f aras─▒ndaki fark nedir ve y├Ântemleri s─▒n─▒fta do─črudan uygulayabildi─čimde neden bir aray├╝z kullanmal─▒y─▒m?

ÔÇť─░├žerme DizinleriÔÇŁ ve ÔÇťEk ─░├žerme DizinleriÔÇŁ aras─▒ndaki fark nedir

Etiketle ilgili di─čer sorular [c++]


.prop () vs .attr ()

Bir s─▒n─▒f─▒ ┼čartl─▒ olarak uygulaman─▒n en iyi yolu nedir?

Visual Studio Kodunda (VSCode) kodu nas─▒l formatlars─▒n─▒z?

Docker'da kal─▒c─▒ depolama (├Ârn. Veritabanlar─▒) ile nas─▒l ba┼ča ├ž─▒k─▒l─▒r

JavaÔÇÖda ge├žerli y─▒─č─▒n izlemesini al─▒n

Python'da eski stil ve yeni stil s─▒n─▒flar─▒ aras─▒ndaki fark nedir?

Bir div ba┼čka div ├╝zerine bindirilir

Arama motorlar─▒ AngularJS uygulamalar─▒yla nas─▒l ba┼ča ├ž─▒k─▒yor?

INotifyPropertyChanged uygulamak - daha iyi bir yol var m─▒?

Java'da bir liste ├╝zerinde yineleme yapman─▒n yollar─▒