Merhaba, hoş geldiniz.
Bu konuşmada, şu konulardan bahsetmek istiyorum include ifadesi hakkında.
Ve böylece, yine, bizim ilk c kodu ve c programina i̇lk maruz
kalişimiza meydan okuyun, şunlari yapmiş olmalisiniz bu dahil ifadesine dikkat edin.
Burada sekizinci satırda. örnek ve bu bizim
örnek challenge project basic c programımız.
Görüyorsun, bu da dahil.
Ve şimdi öğrendiğimiz için önişlemci hakkında, bunun bir
önişlemci yönergesi olduğunu biliyoruz çünkü pound sembolümüz var.
ile başlayan her şey Diğer boşluklardan önce gelen
pound sembolü bir önişlemci komutudur, bir önişlemci yönergesi.
Ve böylece sekizinci satırın şunları içerdiğini biliyoruz pound sembollü özel anahtar
sözcük önceden işlenmiş bir yönergedir.
Şimdi size açıklamak istiyorum Bu tam olarak ne yapıyor?
Bu ne anlama geliyor?
Yine, bu c Bu konu hakkında çok erken konuşmamız gerekiyor
çünkü her C programında var.
Eğer aşina iseniz çok benzer java ile import deyimiyle birlikte.
Ama biz bunu şu şekilde açıklayacağız Şimdi bazı slaytlarda ayrıntı var ama bunu
tüm c programlarınızda göreceksiniz.
Yani include deyimi bir önişlemci yönergesi, pound sembolü nedeniyle
bunu biliyoruz.
Ve biz buna şöyle bir açıklama diyoruz gerçek bir neden olmaksızın sadece yaygın
olduğu için bir direktife karşı programlama dilinde bu terimi kullanır, ancak
teknik olarak bir yönergedir.
Ve yine, bizim örneğimiz programı bu köşeli parantezlerin
içine bir şey ekliyordu.
Yani bu include anahtar kelimesini görüyoruz ve sonra bu stdio'yu görüyoruz. h.
İşte bu da bir örnek.
Bu bizim ilk yarışmamızda kullanıldı.
Kesinlikle bir parçası değil çalıştırılabilir programın.
Ancak, program onsuz çalışmaz.
Bunun bir ön işleme yönergesi.
Aslında pek bir şey yapmıyor. Programın nasıl işlediğine kadar.
Bu sadece derleyiciye çalışmadan önce, hey, biz burada bir şeyler
yapıyorduk.
Ve eğer sende yoksa Orada, derleyici şikayet edecek
ve hata verecektir.
Yani ihtiyacın var.
Pound sembolü şunu belirtir bu bir ön işleme yönergesidir.
Bunun hakkında konuştuk, ki bu derleyicinize daha önce bir şey yapması
için bir talimat kaynak kodunu derlemek.
Birçok ön işleme vardır direktiflerini kullanmış ve ön işleme dersimizde
bazı örnekler vermiştik.
Sabitlerden bahsetmiştik, tanımlanmış ifadeler.
Eğer ve başka hakkında konuştuk ve vb. koşullu ön işleme yönergelerinden
farklıdır.
Ama bu gerçekten en çok yaygın olarak kullanılanlar şunlardır.
Ve yine, bu direktifler kaynak kodunuzun herhangi bir yerinde olabilir, ancak genellikle
en üstte yer alırlar.
Özellikle dahil etmede, bu include önişlemci yönergesi import
deyimine çok benzer java'da eğer aşina iseniz.
Ama bu ne anlama geliyor?
Yani yukarıdaki örnekte burada dahil pound sembolü stdio. h, bu derleyicinize şunu söylüyor
program içeriğinizin bir kısmını bu isimdeki dosyaya
dahil etmek için.
Yani bir dosya adı var stdio adında bir yerde var. h.
Ve direktifin söylediği şey şudur Yönergeyi içeren mevcut programımın bazı
içeriklere ihtiyacı var derlemek için bu dosyanın içinde olmalıdır.
Yani özellikle şunları içerir yönergesi, . ile biten dosya adlarına sahip
olacaktır. h.
Bunlara başlık dosyaları denir.
Bunlara başlık dosyaları denir çünkü genellikle kaynak
dosyanın en üstünde yer alırlar.
Yaptığınız ilk şeylerden biri tüm başlık dosyalarınızı dahil etmenizdir.
Ve yine, bu önişlemci yönergesi, bu dosyanın
içindeki içeriğin bir kısmını istediğimi söylüyor.
Bu bir C dosyası değil.
Sona eren dosyaların bir . c, c kaynak dosyalarıdır.
Yani . h olmak zorundadır başka bir şey, ve öyle.
Bu bir başlık dosyası.
Ve bu var . h uzantısı.
Hadi biraz konuşalım bir başlık dosyasının ne olduğunu.
Başlık dosyaları bilgileri tanımlar Bu dosya tarafından sağlanan
bazı işlevler hakkında.
Ve size bir örnek vereceğim bir başlık dosyasındaki içeriğin.
Ama öncelikle, bazı tanımlamalar yapıyorlar. bazı kaynak kodlar hakkında bilgi.
Ve özellikle bizim örneğimiz için stdio ile birlikte. h, bu bir c standart kütüphane
başlığı içerir.
Hatırla, sana söylemiştim. kütüphaneler hakkında.
Kütüphaneler sadece ek sizin için zaten yazılmış olan işlevsellik
ve programınıza dahil edebilirsiniz, böylece yeniden yazmak
zorunda kalmazsınız.
Yani yine, kütüphane örnekleri şunlardır konsola okuma ve yazma, çıktı görüntüleme,
okuma ve dosya yazmak, ağ koduyla ilgili her türlü farklı şeyi yapmak,
birçok birçok farklı kütüphane var.
Ama stdio. h bir c standart kütüphanesidir.
Bu şu anlama geliyor c programlama dili ve görüntülemek
için işlevsellik sağlar diğer pek çok şeyin yanı sıra çıktı.
Yani stdio. h, bu bir başlık dosyasıdır.
Bazı işlevleri tanımlar derleyicinin onu gerçekten kullanabilmesi için
önce anlaması gerekir.
Yani özellikle stdio. h içerir printf hakkında bilgi.
Ve bu yüzden konuşacağız çıktıyı görüntülememize yardımcı
olan printf hakkında bir sonraki derste bilgi vereceğiz, ama printf stdio'da bulunan
bir fonksiyondur. h başlık dosyası.
Ve ayrıca şunları içerir diğer birçok işlev.
Stdio'nun kısaltması standart girdi çıktısı.
Yani bu kütüphane girdi ve çıktı ile ilgilenmek için işlevsellik
içerir.
Ve işte bu konsept anlamlı bir isim kullanmak.
Bunu aramak istemiyoruz Jason ya da Jason kütüphanesi. Çünkü bu anlamlı
değil.
Biz stdio kullanıyoruz. h çünkü Standart io diyor.
Standart girdi ve çıktı ve biliyoruz ki Bu kütüphane, import alpha için her türlü
işlevselliği içerir.
Özellikle şu işlevler meydan okuma programımızda kullanmak istediğimiz
örnek ilk programımız printf adlı bu fonksiyonu kullanmak
istiyoruz, bu da bize konsola çıktı görüntüler.
Ve böylece bu stdio'yu dahil ederek. h içinde kaynak kodumuz, bu işlevselliği kullanmak için diyoruz
ki printf, bu dosyayı dahil etmemiz gerekiyor.
Yani başlık yangınları şunları belirtecek derleyicinin herhangi bir yeniden kullanımı
entegre etmek ve kullanmak için kullandığı bilgi kodu, bir program içindeki herhangi bir işlev.
Yani ya çok sayıda birçok farklı standart kütüphane başlık
dosyası ve birçok Orada, stdio. H sadece bir tane.
Yine tanımlayan başlık dosyaları var ağ kodu, soket kodu için
işlevsellik veya işlev prototipleri.
Tekrar ediyorum. Birçoğu, tam kelimeler için dizeler ve bunun
gibi şeyler.
Ancak c standardına ek olarak c programlama ile birlikte gelen farklı kütüphanelerdeki kütüphane
dilinde, kendi başlık dosyalarınızı da oluşturabilirsiniz ve kendi
başlık dosyalarınızı oluşturun çünkü başlık dosyaları yazılımın yeniden
kullanılmasını sağlar.
Yeniden kullanmanıza izin verirler c ile yazılmış işlevsellik.
Yani bir yerlerde c'nin tasarımcıları şöyle yazmış tüm bu c kodu veri okuyup yazıyor
ve girdi ve çıktıları işliyor.
Bu yeni C programcısını istemiyorlar. kendi başlarına yazmak zorunda kalacaklar.
Yani yazacaklar ve bunu kullanabileceğinizi
söyleyecekler.
Ve onu kullanma şekliniz başlık dosyasını dahil edersiniz.
Ve böylece kendi geliştiriciniz olarak siz, büyük, çok büyük bir programda bazı kodlar yazabilirsiniz,
binlerce dosya diğer dosyalarda kullanılmasını istediğiniz.
Ve böylece yazacaksın kendi başlık dosyalarınız.
Ve yine başlık dosyaları, fonksiyon prototipleri, farklı
sabitler tanımlayacağız, bir başkasına yardım edecek her türlü
farklı şey programınızı kullanabilen bir dosya, programınızın derlenmesine
yardımcı olacaktır.
Yani bu bir yazılım yeniden kullanımı esasen teknik.
Bu yüzden bunu ekleyeceğiz standart io. kullanmamız gerektiğinde bir programdaki
başlık dosyası standart kütüphanedeki printf fonksiyonunu
kullanmanız gerekir.
Eğer dahil etmediyseniz derlenmeyecektir.
Yani ne zaman belirli işlevler için include
kullanmanız gerekir.
Başlık dosyalarına kadar sözdizimi gidin, büyük/küçük harfe duyarlıdırlar.
Büyük/küçük harf duyarlılığı şu anlama gelir büyük harf veya küçük harf.
Önemli olan sizin Birini ya da diğerini yap.
Bu yüzden her zaman küçük harfle yazın.
Başlık dosyalarınız şurada olmalıdır küçük harf, çünkü
aksi takdirde bazı sistemler farklı bir anlamı vardır.
Dahil etmenin iki yolu vardır bir programdaki başlık dosyaları.
Açılı parantez kullanabilirsiniz Jason'ın da dahil olduğu
pound gibi. h ve açılı parantezler.
Ve bu genellikle şu anlama gelir önişlemciye bir tür sistem
dizininde bir dosya aramasını söyler.
Genellikle standart bir kütüphanedir. c programlama dili ile birlikte gelir.
Çift tırnak da kullanabilirsiniz.
Çift tırnak genellikle şu anlama gelir kullanıcı tanımlı bir başlık dosyasıdır.
Bu, sizin yarattığınız bir c programlama dili ile gelmeyen
ancak bazı kodları yeniden kullanmak istediğiniz için bu başlığın
orada olmasını istersiniz.
Yani aynı zamanda şöyle diyecek geçerli dizine bakın.
Uyumlu her c derleyicisi C11 standardına göre bir dizi standart üstbilgiye
sahip olacaktır dosyalarıyla birlikte verilir.
Bunlar sadece başlık dosyalarıdır kütüphaneleri temsil eder.
C işlevselliği dil ile birlikte gelir.
include yönergesini kullandığınızda, için değilse de diğer önişlemci yönergelerini kullanmak yaygın
bir uygulamadır. find ve define, böylece dosyayı birden fazla kez dahil
etmezsiniz.
Bu verimlilik içindir.
Yani programınız printf kullanıyorsa, Örneğin, çıktıyı ekranda görüntülemek
için programınıza şunu söylemek istersiniz, hey, bu ek işlevselliği standart
kütüphaneye eklemem gerekiyor.
Bunu ona söylemek istemezsin. birden fazla kez dahil edin çünkü önişlemci
birçok Yapması gerekmeyen şeyler.
Yani tipik olarak tanımlanmamışsa kullanın.
Bu yüzden bazılarında bunun bir kısmını göreceksiniz. verdiğim örneklerde,
eğer varsa, içerikleri bu şekilde sarmalıyorum tanımlar ve tanımlama ifadeleri değil.
İşte bir örnek başlık dosyasının içeriğinde.
Bazı başlık dosyalarınız olabilir, içinde bazı yorumlar var, içinde
başka şeyler de olabilir.
Esas olarak işlevi vardır prototipleri olabilir, ancak sabitleri
olabilir, typedefleri olabilir.
Bunlar bazı kavramlardır henüz anlamıyoruz.
Ama ben sadece şunu anlatmaya çalışıyorum. birçok farklı şey içerdiğini anlamanıza
yardımcı olmaya çalışıyorum.
Ama yine bizim stdio için. h, there's printf fonksiyonunu tanımlayan printf adında bir şey var Böylece
bağlantı kurduğumuzda bunun için uygulama kodunu bulabiliriz.
İşte bazı fonksiyon prototipleri.
İşlev prototipleri şunlardır sadece fonksiyon isimleri.
Bir fonksiyonun ne olduğunu biliyoruz Umarım şimdiye kadar sadece kodları
bir araya getirmenin bir yolu olmuştur.
Fonksiyonlar hakkında konuşacağız daha sonra çok daha ayrıntılı olarak.
Yani bir başlık dosyası şunları içerebilir birçok, birçok farklı şey.
Tanımlanmış yönergeler içerebilir, sabitler, yapı bildirimleri.
Bu yine farklı grupları bir araya getirmenin bir yoludur. değişkenler, farklı verileri gruplandırır.
Typedef ifadeleri şunlara sahiptir veri türleri ile ilgili.
Bu konuda daha fazla konuşacağız.
Ancak fonksiyon prototipleri gerçekten önemli olan.
Sana nasıl işlediğini söylüyorlar. tanımlanır, böylece derleyici ihtiyaç duyduğu
kodu üretebilir.
Yürütülebilir kod gider bir kaynak kod dosyasında.
Kaynak kod dosyası sona erer . c uzantısı.
Normal olarak çalıştırılabilir kod bir başlık dosyasına girmez.
Bazı istisnalar vardır.
Bir şeyleri satır içi yapmak istediğinizde Bu da yine bir verimlilik
olayıdır. kaynak kodunu başlık dosyalarına
dönüştürür, ancak tipik olarak bir . h dosyası, bir başlık dosyası uygulama kodu içermeyecektir.
Çizgiler içerecek sadece tanımlar için kod.
Pekala. bir mantığı yok.
Sadece tanımlar olacak.
Bu işlev mevcuttur.
Bu işlev var.
Bu sabitler mevcuttur.
Bu farklı yapılar mevcuttur.
Bu kodun nasıl olduğunu söylemiyorlar. ne yapıyorsa onu yapıyor.
Sadece orada olduğunu söylüyor.
Derleyici tarafından ihtiyaç duyulur bağlantı oluşturmak için.
Tamam, yani sen gidiyorsun kendi başlık dosyalarınızı oluşturun.
Sistem başlığını kullanacaksın ek işlevsellik için dosyalar.
Bu bir kavramdır. c programları yazmaya başlamadan önce
anlamalısınız çünkü bu include yönergesini
tüm programlarda göreceksiniz.
Ve bu sadece programa Yine bir yere ek bir kod
eklediğimizi.
Ek tanım ekliyoruz kodunu kullanarak bu farklı fonksiyonları
şu şekilde çağırabiliriz c programımızdaki farklı kodlar.
Umarım bu mantıklıdır.
Tekrar söylüyorum, bu gerçek bir karmaşık bir kavram.
Ek kod ekliyoruz.
Oldukça sezgisel, ama üzerinden geçeceğiz, ilerledikçe
daha fazla örnek vereceğiz.
Teşekkür ederim.