- C'nin tarihini ve bugün nerelerde kullanıldığını açıklamak
- Bir C programını
gccile derleyip çalıştırmak #include <stdio.h>,int main(void)vereturn 0;satırlarının anlamını kavramakprintfile biçim belirteçlerini ve kaçış dizilerini kullanmak
Telefonun, çamaşır makinesi, otomobilin motor kontrol ünitesi ve evine interneti getiren yönlendirici (router)... Hepsinin içinde programlar çalışır. Bu programların şaşırtıcı bir kısmı elli yaşını çoktan geçmiş bir dille yazılmıştır: C. C hızlıdır, küçüktür ve donanıma çok yakındır. Onu öğrenirken bilgisayarın bellekle gerçekte nasıl çalıştığını göreceksin.
Kısa bir tarihçe
C dili 1972'de ABD'deki Bell Labs laboratuvarında Dennis Ritchie tarafından geliştirildi. Ritchie'nin Unix işletim sistemini yazmak için bir dile ihtiyacı vardı: Assembly dili tek bir bilgisayara fazlasıyla bağlıydı, o dönemin yüksek seviyeli dilleri ise çok yavaştı. C bu sorunun cevabı oldu: neredeyse Assembly kadar hızlı ama başka bilgisayarlara taşınabilen bir dil.
- 1972C doğuyor
Dennis Ritchie, Bell Labs'te B dilinin devamı olarak C'yi geliştirir.
- 1973Unix C ile yeniden yazılır
Unix işletim sisteminin çekirdeği C ile yeniden yazılır.
- 1978K&R kitabı
Brian Kernighan ve Dennis Ritchie The C Programming Language kitabını yayımlar.
- 1989İlk standart: C89
Amerikan Ulusal Standartlar Enstitüsü (ANSI), C'nin ilk resmî standardını onaylar.
- 1999C99 standardı
//yorumları,long longtürü vefordöngüsünün içinde değişken tanımlama imkânı eklenir. - 2011C11 standardı
Çok iş parçacıklı programları destekleyen modern standart. Ardından C17 ve C23 geldi.
C bugün nerelerde kullanılıyor?
- İşletim sistemleri: Linux ve Windows çekirdeklerinin büyük bölümü C ile yazılmıştır.
- Gömülü sistemler: çamaşır makinelerindeki, otomobillerdeki, tıbbi cihazlardaki ve yönlendiricilerdeki mikrodenetleyiciler; yani belleğin az, hızın önemli olduğu yerler.
- Araçlar ve diğer diller: standart Python yorumlayıcısı (CPython), SQLite veritabanı ve Git sürüm kontrol sistemi C ile yazılmıştır.
- Diğer dillerin temeli: C++, Java, C# ve JavaScript süslü parantezleri, noktalı virgülü ve operatörleri C'den almıştır. Bu yüzden C'den sonra bu diller sana tanıdık gelecek.
İlk program
İşte klasik ilk program. Onu hello.c adlı bir dosyaya kaydet:
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}Hello, World!
#include <stdio.h>, standart girdi/çıktı kütüphanesinin başlık dosyasını ekler;printffonksiyonu orada bildirilmiştir.int main(void)ana fonksiyondur: her C programı çalışmaya buradan başlar.int, fonksiyonun bir tam sayı döndürdüğünü;voidise hiç parametre almadığını belirtir.- Süslü parantezler
{ }fonksiyonun gövdesini çevreler. Her komut noktalı virgülle (;) biter. printfmetni ekrana yazar,\nise imleci yeni satıra geçirir.return 0;işletim sistemine programın başarıyla bittiğini bildirir.
Koddan programa: derleme
Bilgisayar hello.c dosyasındaki metni doğrudan çalıştıramaz. C derlenen bir dildir: önce bir derleyici kaynak kodun tamamını makine koduna çevirir ve çalıştırılabilir bir dosya olarak kaydeder. En yaygın C derleyicileri GCC, Clang ve Microsoft'un MSVC'sidir.
- 1Kodu yaz
Herhangi bir metin düzenleyicide veya IDE'de (örneğin VS Code)
.cuzantılı bir dosya oluştur ve kodu yaz. - 2Derle
Terminale
gcc hello.c -o helloyaz. Derleyici kodu denetler: hata yoksahelloadlı çalıştırılabilir dosyayı oluşturur, hata varsa hatanın satır numarasını gösterir. - 3Çalıştır
Linux ve macOS'ta
./hello, Windows'ta isehello.exeyaz. Kodu her değiştirdiğinde yeniden derlemen gerekir.
gcc hello.c -o hello
./helloHello, World!
-o hello, oluşacak dosyanın adını belirler.printf ve biçim belirteçleri
printf yalnızca hazır metin yazdırmakla kalmaz. Metnin içine % ile başlayan biçim belirteçleri yerleştirilir ve her biri virgülden sonra gelen sıradaki değerle değiştirilir. Değişkenler için şimdilik endişelenme; onları bir sonraki derste ayrıntılı olarak inceleyeceğiz.
| Belirteç | Ne için | Değer | Çıktı |
|---|---|---|---|
%d | tam sayı (int) | 42 | 42 |
%f | ondalıklı sayı (double, float) | 3.5 | 3.500000 |
%.2f | noktadan sonra 2 basamaklı ondalıklı sayı | 3.14159 | 3.14 |
%c | tek karakter (char) | 'A' | A |
%s | karakter dizisi (metin) | "Baku" | Baku |
%% | yüzde işaretinin kendisi | – | % |
#include <stdio.h>
int main(void) {
int age = 14;
double height = 1.62;
char grade = 'A';
printf("Name: %s\n", "Leyla");
printf("Age: %d\n", age);
printf("Height: %f m\n", height);
printf("Height: %.2f m\n", height);
printf("Grade: %c\n", grade);
printf("Progress: 75%%\n");
return 0;
}Name: Leyla Age: 14 Height: 1.620000 m Height: 1.62 m Grade: A Progress: 75%
Dikkat et: %f her zaman noktadan sonra altı basamak yazar, %.2f ise sayıyı iki basamağa yuvarlar. % işaretinin kendisini yazdırmak için %% yazılır.
Bazı karakterler tırnakların içine doğrudan yazılamaz. Bunlar ters eğik çizgiyle başlar ve kaçış dizileri olarak adlandırılır: \n yeni satır, \t sekme, \" çift tırnak, \\ ise ters eğik çizginin kendisidir.
#include <stdio.h>
int main(void) {
printf("Line 1\nLine 2\n");
printf("She said \"Hi!\"\n");
printf("Folder: C:\\code\n");
printf("Sum: %d\n", 2 + 3);
return 0;
}Line 1 Line 2 She said "Hi!" Folder: C:\code Sum: 5
printf birkaç satır yazdırabilir; %d ise 2 + 3 ifadesinin sonucunu gösterir.Önemli noktalar
- C, 1972'de Bell Labs'te Dennis Ritchie tarafından Unix'i yazmak için geliştirildi.
- C derlenen bir dildir:
gcc hello.c -o hellokaynak koddan çalıştırılabilir bir dosya üretir. - Her program
int main(void)fonksiyonundan başlar;return 0;başarılı bitiş demektir. #include <stdio.h>,printfve diğer girdi/çıktı fonksiyonlarını kullanmanı sağlar.- Biçim belirteçleri:
%dint,%fdouble,%.2fiki basamaklı ondalık,%ckarakter,%skarakter dizisi içindir.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.