Kayıtlar

Mart, 2022 tarihine ait yayınlar gösteriliyor

C++ Preprocessor (Ön işleyici)

    Pre-processor derleyicinin önemli bir parçasıdır. Ben pre-processorün  bize yazdığınız kodu derlemeye başladığınızda şunu dediğini düşünüyorum:  evet sen bu kodu yazdın ama bu kodu hem performans açısından hem de verimlilik açısından bir kontrol edelim, gerekli değişiklikleri yapalım, işe yaramaz kısımları atalım, bu arada bana makrolarla bildirdiğin direktifleri de yerine getireceğim. Yaptığı iş tam olarak budur, ancak işin kötü tarafı neler yaptığını neleri düzenlediğini bizimle paylaşmıyor maalesef,  paylaşıyor olsaydı daha güzel bir programlama dünyasına sahip olabilirdik :)     Peki bu bahsettiği makro direktifleri nelerdir? Yeni bir satırda # hash, sharp diez ne derseniz artık işaretiyle başlarlar.     #define ZERO 0      define bunlardan biridir, preprocessor bu direktifle kodunuz içerisinde ZERO deyimini arar ve bulduğu heryerde 0 ile değiştirir. Değişken tanımlar gibi eşittir kullanmadığımıza ve satır sonunda noktalı virgül kullanmadığımıza dikkat edin. kullanırsak onu d

Fonksiyon Prototiplerinin ve Bildirimlerinin Görünürlüğü

     C++ 'da fonksiyon kullanılmadan önce bildirilmeli ya da tanımlanmalıdır. Ana kodumuzun üzerinde tüm fonksiyonlarımızı yazarak sayfa içerisinde kalabalığa sebep oluruz, bunu engellemek için fonksiyon bildirimlerinin (function prototypes) kullanıldığından bahsetmiştik. Bunlar da yeterince fazlalaşınca da header dosyalarına geçiş yapıyoruz.      Eğer ki fonksiyonun çağırılması bu bildirim ya da tanımlamadan önce yapılırsa compile time hatası dediğimiz hata tipiyle karşılaşırız: Severity Code Description Project File Line Suppression State Error (active) E0304 no instance of overloaded function "topla" matches the argument list Project1 E:\!Blog\C++ Dersleri\Project1\merhabadunya.cpp 14 #include   < iostream > //int topla(int a,int b = 17); //int topla(int, int, int); int   main ()   { int   toplam   =  topla ( 5 ); // int toplam = 22; } int   topla ( int   a ,   int   b )   // fonksiyon parametrelerine ulaşmak için is

C++ Fonksiyonlar

Resim
    Programlamada çok tekrar ettiğimiz kod satırlarını ya da kod bloklarını lazım olduğu her yerde yeniden yazmak yerine, yahut kopyala yağıştır yapmak yerine, söz konusu bloğu bir fonksiyon olarak tanımlar ve gerektiği yerde fonksiyonu çağırarak bunu bir rutin haline getirebiliriz.     C++ 'da fonksiyonlar parametrik olarak tanımlanabilirler, yani, bir fonksiyona değer gönderebiliriz. Fonksiyonun tanımlandığı tipe göre bir dönüşü olmak zorundadır, tipsiz dediğimiz void tanımlaması için bu durum istisnadır.     Programlama dillerindeki fonksiyon kullanımı matematiksel fonksiyonları andırmaktadır ve aynı zamanda matematiksel fonksiyonlar programlama dillerindeki fonksiyonların esin kaynağıdır. C++ için fonksiyon tanımının tam karşılığı (procedure) prosedür kelimesi olsa gerek. Bu manada tam olarak matematiksel fonksiyonlarla eşleştirmek doğru olmayabilir.     Fonksiyonlar genellikle belirli bir işlevi yerine getirmek içindir ve bir programın herhangi bir yerinden çağırılabilirler,

C++ Derleme Süreci

Resim
Bilgisayarda ya da C++ ile kodladığınız uygulama hangi platform üzerinde çalışıyorsa, C++ kodunun o platformun anlayacağı dile (assembly) çevirme işlemine derleme (compile) adı verilir. Bu süreci yöneten uygulama ise derleyicidir (compiler). C++, C dili üzerinde yapılan geliştirmelerle ortaya çıkmıştır dolayısıyla derleme işleminin biçimi de C 'den miras olarak almıştır. Dört ana adımda bu sürece göz atmamız gerekirse: Pre-Processing : ön işleme, ön işlemci tarafından kod içerisindeki makro yapıların işlemlerini gerçekleştirir. Bunlara örnek vermek gerekirse #include ile dosyamıza dahil ettiğimiz harici dosya içeriklerini kopyalayıp, dahil ettiğimiz yere yapıştırır, ya da #define direktifi ile tanımladığımız sembolik sabitleri değerleriyle değiştirir. C++ ön işlemcisi tarafından genişletilen/daraltılan, hazır edilen kaynak kod dosyası, hedef platformun anlayacağı assembly diline derlenir. Derlenen kod hedef platform için bir nesne koduna dönüştürülür ( .o uzantılı dosya ) Linke

C++ Yorum Satırları (comments)

 C++ ya da diğer hemen hemen tüm programlama dillerinde yorum satırları, kendinize ya da kodunuzu okuyacak olan diğer kişilere yazacağınız ve derleyicinin kodunuzu derlerken dikkate almayacağı açıklama satırlarıdır diyebiliriz. C++ için iki tip açıklama satırından bahsetmek mümkündür. Tek satırlı yorum   İki tane bölü // işaretinin peşpeşe yazılmasından sonra yazılacak herşey yorum olarak kabul edilir. #include   < iostream > int   main ()   { // Tek satırda yorum yazma int   a ;   // satır sonuna yorum yazabilirsiniz. } C Stili Blok halinde yorum satırları Sıralı bölü ve yıldız  /* işaretlerinden sonra yorum yazmaya başlayabilir, yine sıralı yıldız ve bölü işareti */ ile yorum yazmayı istediğiniz yerde ve sütunda bitirebilirsiniz. Bu iki işaret içerisinde ne yazarsanız yazın buna C++ syntaxları da dahil, yorum olarak işlem görürler. C ve C++ için geçerlidir. #include   < iostream > int   main ()   { /*  Bu bir yorum bloğudur,   derleyici taraf

C++ Merhaba Dünya

 Merhaba Dünya Aşağıda görmüş olduğunuz kod yapısı en basit haliyle bir C++ uygulamasını göstermektedir. Komut satırı ekranına "Merhaba Dünya" yazar. #include   < iostream > int   main () { std :: cout   <<   " Merhaba Dünya "   <<   std :: endl ; } Kod Analizi Yazdığımız kodu parça parça incelememiz gerekirse sırasıyla #include  < iostream >   preprocessor (önişleyici) 'e gönderilen ve C++ 'ın standart header dosyalarından biri olan iostream.h 'ı kodumuza dahil eden bir talimattır. iostream.h dosyası standart giriş çıkış akışlarının tanımlarını ve alan isimlerini ( namespace )içerir. Standart giriş çıkış akışıyla kastettiğim şey harici bir sistemden bir bilgi almak ya da bilgi göndermektir. Mevcut durum için bu terminal/konsol diye adlandırabileceğimiz CMD ekranıdır. int  main () { ... }  main adında yeni bir fonksyion tanımlar. Bu fonksiyon programımız çalıştırıldığı zaman ilk çağırılan özel bir fonksiyondur. Her C

C++ dersleri - Konu Başlıkları ~ İçerik

1 C++ 'a Başlarken      1.1.  C++ Nedir?         1.2. Merhaba Dünya      1.3. C++ Yorum Satırları     1.4. Derleme Süreci     1.5. C++ Fonksiyonlar      1.6. Fonksiyon Bildirimlerinin ve Tanımlamalarının Görünürlüğü     1.7. Preprocessor - Ön işlemci 2 C++ Literals     2.1 this keyword      2.2 Integer Literal | Tam sayı hazır bilgileri     2.3 C++ true false     2.4 nullptr 3 C++ Operatör Öncelikleri     3.1 Mantıksal AND ve Mantıksal OR Operatörleri     3.2 Unary Operatörler     3.3 Aritmetik Operatörler ve Öncelikleri 4 C++ Floating Point Sayıların Aritmetiği 5 C++ Bitwise Operators     5.1  Bitwise OR Veya Operatörü     5.2  Bitwise XOR, Özel Veya Operatörü     5.3  Bitwise And ~ C++ ve operatörü &      5.4 Bitwise Left Shift Operatör     5.5 Bitwise Right Shift Operatör 6 Bit Manipülasyonları     6.1   Bit Manipulasyon - En Sağdaki Set Edilmiş Biti Resetleme      6.2 Tüm Bitleri Set Etme      6.3 Bit Toggle     6.4 Bit Kontrol     6.5 Set Bitleri Sayma     6

C++ Dersleri 1 Bölüm ~ C++ 'a başlarken

C++ Nedir? C++ yüksek performanslı uygulamalar oluşturabileceğiniz değişik platformlarda (mobil, android, ios, gömülü sistemler : stm, avr, arm gibi) kullanılabilen popüler bir programlama dilidir. Programcısına sistem kaynaklarının etkili kullanılmasında özellikle de bellek üzerinde yüksek düzeyde kontrol imkanı sağlamaktadır. Bir çok programlama dilini öğrenmiş çeşitli projelerde çalışmış ve uygulamalar geliştirmiş biri olarak kendi tabirimle "C++ güçlü bir dildir" diyebilirim. C++ 'ın fazlaca kapsamlı bir yapısı olması sebebiyle bu konuda yazılacak çok fazla şey var, vakit buldukça burada paylaşıyor olacağım. Dilerim sizlere C++ deryasında yol almanızda ufak da olsa bir faydam dokunur. İçerik :  C++ Dersleri İçerik   Sonraki konu :  C++ Merhaba Dünya                                             

Nesnelerin İnterneti IoT Esp8266 Webserver

Resim
NodeMCU kullanarak oluştuğumuz webserver ile, Esp8266 kart üzerindeki lede komutlar göndereceğiz. Aşağıda yer alan kod üzerinde yer alan  const char * ssid = "" ; // Bağlanılacak Wifi Adı const char * pwd = "" ; // Bağlanılacak Wifi Şifresi satırlarında bulunan bilgileri girmeniz gerekiyor, kartımızın bağlanacağı kablosuz ağa ait olan bilgiler kullandığınız wifi bağlantı noktasının ismi ve parolasıdır. Lütfen bu bilgileri çift tırnak içerisine yazdığınızdan emin olun. Bu bilgileri girdikten sonra kodu kartımıza yükleyebiliriz. Yine Tools -> Board-> ESP8266 Boards menüsünden Generic ESP 8266 module  seçili olduğundan ve  Port kısmından karta ait doğru portu seçtiğinizden emin olun. Yüklemeyi gerçekleştirdikten sonra Arduino IDE üzerinden Tools -> Serial Monitor (Araçlar -> Seri Ekran) 'ü açarak, wifi modeminizin kartımıza tanımladığı ip adresine ulaşabiliriz. NodeMCU erişim IP adresi http://192.168.1.39/ benzeri bi metinle ka