C11 ve C17
- C kursu
- Uzman
- Ders 25/47
- 5 dk
C11 ve C17 standartlarını öğrenirsin.
C11 standardı
C11 (ISO/IEC 9899:2011), C dilinin modern sürümüdür. C99'dan sonra gelen bu sürüm, dile birçok önemli özellik kattı: atomik işlemler (stdatomic.h), iş parçacıkları (threads.h), tip tabanlı seçim (_Generic) ve derleme zamanı denetimleri (_Static_assert).
Bu özellikler C'yi modern sistem programlama ihtiyaçlarına cevap verecek hale getirdi. Atomik işlemler kilitsiz veri yapılarını, iş parçacıkları standart paralel programlamayı mümkün kılar. Derleyiciyi -std=c11 veya -std=c17 ile çalıştırırsın.
C17 düzeltme sürümü
C17 (ISO/IEC 9899:2018), C11'in bir düzeltme sürümüdür. Yeni dil özelliği eklemez; yalnızca C11'de bulunan hataları ve belirsizlikleri giderir. Bu yüzden C17, C11 ile tam uyumludur.
Pratikte C17, günümüzde önerilen sürümdür. Derleyiciyi -std=c17 -pedantic ile çalıştırmak, taşınabilir ve temiz kod yazmanı sağlar. __STDC_VERSION__ makrosu C11 için 201112L, C17 için 201710L değerini verir; böylece kodun hangi sürümle derlendiğini denetleyebilirsin.
Uygulama Standart sürümünü yazdır
#if __STDC_VERSION__ >= 201112L yönergesini kullanarak, modern C (C11 ve sonrası) ile "Modern C", aksi halde "Eski C" yazdıran bir int main(void) yaz. #if, #else ve #endif kullan.
Başlangıç kodu
#include <stdio.h>
// Standart sürümünü denetle:
// modern C ise "Modern C" yazdır
// değilse "Eski C" yazdırÖrnek çözüm
#include <stdio.h>
int main(void) {
#if __STDC_VERSION__ >= 201112L
printf("Modern C\n");
#else
printf("Eski C\n");
#endif
return 0;
}Beklenen çıktı
Modern C
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi standart stdatomic.h başlığını getirdi?
- C11 Doğru cevap
- C99
- C89
- C17
Açıklama: stdatomic.h C11 ile geldi; atomik işlemler bu sürümde eklendi.
2 C17 sürüm makrosunu tamamla
#if __STDC_VERSION__ >= ____
printf("C17\n");
#endif
#if __STDC_VERSION__ >= 201710L
printf("C17\n");
#endif
Açıklama: C17 için __STDC_VERSION__ 201710L değerini taşır.
3 Standart ve özelliği eşle
| Kavram | Anlamı |
|---|---|
C11 |
Atomik işlemler |
C17 |
Hata düzeltmeleri |
C99 |
Tek satır // yorum |
C89 |
İlk C standardı |