ADVANCED TOPICS IN C: MANAGING CODE COMPILATIONS USING PREPROCESSOR DIRECTIVES EĞİTİMİ

Derlemeyi önişlemciyle tam kontrol altına alın

#define, #ifdef, include guard, X-makroları ve gcc -E çıktısıyla taşınabilir, sürdürülebilir C kod tabanları kurun.

Bu eğitim, C derleme zincirinin ilk aşaması olan önişlemciyi derinlemesine ele alır. #define ile nesne ve fonksiyon benzeri makrolar, # ve ## operatörleri, #if/#ifdef/#elif ile koşullu derleme, include guard ve #pragma once, X-makroları, değişken argümanlı ma…

2 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Önişlemci aşamasından çok platformlu derleme yapılandırmasına C derleme yönetimi

Bu eğitim, C derleme zincirinin ilk aşaması olan önişlemciyi derinlemesine ele alır. #define ile nesne ve fonksiyon benzeri makrolar, # ve ## operatörleri, #if/#ifdef/#elif ile koşullu derleme, include guard ve #pragma once, X-makroları, değişken argümanlı makrolar ve gcc -E ile önişlemci çıktısının incelenmesi uygulamalı olarak işlenir. Makro tuzakları ve çok platformlu yapılandırma yönetimi de kapsanır.

Süre ve Format

2 Gün. Her gün dört modül; 1. günde Önişlemci Mekaniği ve Makro Tasarımı ve 2. günde Koşullu Derleme ve Gelişmiş Kalıplar ele alınır, her modül uygulamalı çalışmayla pekiştirilir.

Seviye

İleri Seviye — C önişlemcisi, koşullu derleme, makro tasarımı ve çok platformlu derleme yönetimi

Öğrenme Metodu

Her modülde gcc -E, -D ve -save-temps çıktıları üzerinden önişlemci davranışı adım adım izlenir ve gerçek bir çok platformlu C projesi üzerinde refaktör yapılır.

Neden Bu Eğitim?

🎯Derleme Hakimiyeti

Derleyicinin görmeden önce kodunuza ne yaptığını gcc -E ile satır satır görür, beklenmedik davranışları kaynağında çözersiniz.

⚙️Taşınabilir Kod

Platform, derleyici ve mimariye göre koşullu derleme ile tek kod tabanından birden çok hedef üretirsiniz.

🚀Güvenli Makrolar

Çift değerlendirme, parantez eksikliği ve yan etki tuzaklarını tanıyıp güvenli makro kalıpları yazarsınız.

Anahtar Konular

C önişlemcipreprocessor directives#define makrokoşullu derlemeinclude guardX-macrogcc -EC programlama eğitimitaşınabilir C kodu
“İyi yazılmış bir makro görünmez olur; kötüsü ise hata ayıklamanın en uzun gecesine dönüşür.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C Temelleri

Pointer, struct ve fonksiyon kavramlarına hakim olmak gerekir.

2
Derleme Süreci

Derleme, assembly, nesne dosyası ve bağlama aşamalarının genel bilgisi faydalıdır.

3
Linux Ortamı

Komut satırında gcc ve make kullanabilmek beklenir.

4
Geliştirme Ortamı

gcc veya clang kurulu bir Linux, WSL ya da macOS ortamı hazır olmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı önişlemcinin çalışma sırasını açıklar ve güvenli, okunabilir makrolar tasarlar.
Modül 1
Önişlemci Aşamaları
  • Çeviri aşamaları: trigraph, satır birleştirme, tokenizasyon ve makro genişletme sırası
  • gcc -E, -P ve -save-temps ile önişlemci çıktısını üretip okuma
  • #include ile <> ve "" arama yolları, -I bayrağı ve include sırası
  • #line, #error ve #warning yönergelerinin tanı amaçlı kullanımı
  • Önceden tanımlı makrolar: __FILE__, __LINE__, __DATE__, __func__ ve __STDC_VERSION__
  • gcc -dM -E ile derleyicinin tanımladığı makroların listelenmesi
Modül 2
Nesne ve Fonksiyon Benzeri Makrolar
  • #define ile sabit tanımları ve enum ile const alternatiflerinin karşılaştırması
  • Fonksiyon benzeri makrolarda argüman parantezleme ve operatör önceliği hataları
  • Çift değerlendirme sorunu: MAX(a++, b) örneği ve çözüm kalıpları
  • do { ... } while (0) deyimiyle çok satırlı makroların güvenli sarılması
  • Makro ile inline fonksiyon ve _Generic seçiminin ölçütleri
  • #undef ve makro yeniden tanımlama kuralları, uyarı davranışları
Modül 3
Dizgeleştirme ve Token Yapıştırma
  • # operatörü ile argümanı dizgeye çevirme ve iki aşamalı genişletme (STR/XSTR) kalıbı
Modül 4
operatörü ile tanımlayıcı üretme ve genel tür adlandırma
  • Değişken argümanlı makrolar: __VA_ARGS__ ve ##__VA_ARGS__ GNU uzantısı
  • __VA_OPT__ ve argüman sayısını sayan makro hileleri
  • Makro ile log makrosu yazma: dosya, satır ve fonksiyon bilgisini ekleme
  • Özyinelemeli makro sınırı ve boyalı mavi (painted blue) kuralı
Modül 5
Include Guard ve Başlık Yönetimi
  • #ifndef/#define/#endif include guard ve #pragma once farkları
  • Döngüsel include bağımlılıklarının ileri bildirimle çözülmesi
  • Başlık dosyalarında inline, static ve extern yerleşimi kuralları
  • extern "C" sarmalayıcısı ile C++ uyumluluğu
  • Genel başlık ve özel başlık ayrımıyla kütüphane API tasarımı
  • Başlık bağımlılık analizi için gcc -M ve -MMD çıktıları
Günün hedefiKatılımcı koşullu derleme ile çok platformlu yapılandırma kurar ve ileri önişlemci kalıplarını uygular.
Modül 1
Koşullu Derleme Yönergeleri
  • #if, #ifdef, #ifndef, #elif ve defined() operatörünün kullanımı
  • #if ifadelerinde tamsayı aritmetiği ve sizeof kullanılamaması
  • DDEBUG ve -DVERSION=2 gibi komut satırı tanımları
  • Özellik bayrakları ile derleme zamanı konfigürasyonu tasarımı
  • #if 0 ile kod devre dışı bırakmanın yorum satırına göre avantajları
  • Derleyici ve sürüm tespiti: __GNUC__, __clang__ ve _MSC_VER
Modül 2
Platform ve Derleyici Taşınabilirliği
  • Mimari ve işletim sistemi makroları: __linux__, _WIN32, __APPLE__, __arm__
  • Endian ve sözcük boyutu farklarının önişlemciyle yönetimi
  • Derleyiciye özgü öznitelikler için __attribute__ ve __declspec sarmalayıcıları
  • stdint.h ve limits.h ile tür genişliği bağımsız kod
  • Platform soyutlama katmanı (PAL) başlık tasarımı
  • Taşınabilirlik testi için çapraz derleme ve CI matrisi mantığı
Modül 3
X-Makroları ve Kod Üretimi
  • X-macro kalıbıyla enum ve dizgeye çeviri tablosunun tek kaynaktan üretimi
  • Hata kodları, komut tablosu ve kayıt tanımlayıcıları için X-makro uygulaması
  • Makro ile veri sürücülü state machine tablosu oluşturma
  • Alt başlık yöntemiyle X-makro listelerinin dosyaya taşınması
  • Üretilen kodun gcc -E ile doğrulanması
  • Okunabilirlik ve bakım maliyeti açısından X-makro sınırları
Modül 4
Derleme Zamanı Doğrulama ve En İyi Uygulamalar
  • _Static_assert ve static_assert ile derleme zamanı kontrol
  • Debug ve release yapılandırmasında assert, NDEBUG ve log seviyeleri
  • Önişlemci kaynaklı hataların teşhisi ve -Wundef, -Wunused-macros uyarıları
  • MISRA C ve CERT C kurallarının makro kullanımına bakışı
  • Makro yerine inline, enum ve const seçiminin refaktör uygulaması
  • Makefile ve CMake ile -D tanımlarının yapılandırma yönetimi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Önişlemci Analizi

gcc -E çıktısından makro genişlemesini okuyup hataları bulabilirsiniz.

🧩
Güvenli Makro Yazımı

Parantezleme ve do-while kalıplarıyla yan etkisiz makrolar yazabilirsiniz.

🛠️
Token Yapıştırma

# ve ## operatörleriyle kod üretebilirsiniz.

📊
Include Yönetimi

Include guard ve başlık bağımlılıklarını doğru kurgulayabilirsiniz.

🔍
Koşullu Derleme

Özellik bayrakları ve platform makrolarıyla tek kaynaktan çok hedef üretebilirsiniz.

🧪
X-Makro Kalıbı

Tablo sürücülü kodu tek kaynaktan üretebilirsiniz.

📐
Derleme Zamanı Kontrol

static_assert ile hataları çalışma zamanına bırakmadan yakalayabilirsiniz.

🚀
Kod Tabanı Temizliği

Eski makroları inline ve enum yapılarına güvenle dönüştürebilirsiniz.

Kimler İçin Uygundur?

  • C ile çalışan gömülü sistem
  • sistem programlama
  • kütüphane geliştiricileri ile büyük C kod tabanlarında derleme yapılandırmasını yöneten mühendisler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
C ile çalışan gömülü sistem, sistem programlama ve kütüphane geliştiricileri ile büyük C kod tabanlarında derleme yapılandırmasını yöneten mühendisler için uygundur.
Eğitimde hangi derleyici kullanılır?
Uygulamalar gcc ağırlıklıdır; clang farklarına da değinilir ve komutlar iki derleyicide karşılaştırılır.
Makrolar neden tehlikelidir?
Makrolar tür denetimi olmadan metin ikamesi yapar; çift değerlendirme ve öncelik hataları çalışma zamanında zor bulunan sorunlara yol açar.
C++ bilgisi gerekli mi?
Gerekli değildir; yalnızca extern "C" gibi uyumluluk konularında kısaca değinilir.
Katılım sonunda ne verilir?
Programı tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced Topics in C: Managing Code Compilations Using Prepr Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn