Online C derleyici nasıl kullanılır?
- C programınızı düzenleyiciye yazın veya yapıştırın; programda bir
mainişlevi bulunmalıdır. Örneği sıfırla başlangıç programını geri getirir. - Program
scanf,getcharveyafgetsile girdi okuyorsa çalıştırmadan önce girdiyi çıktının altındaki Girdi (stdin) kutusuna yazın. - Çalıştır düğmesine ya da Ctrl + Enter (Mac'te ⌘ + Enter) tuşlarına basın. Kod önce derlenir, sonra çalıştırılır; iki adımın sonuçları da Çıktı panelinde görünür.
- 5, 15 veya 60 saniyelik bir süre sınırı seçin. Sonsuz bir döngü sınıra ulaşıldığında durdurulur; Durdur ise çalışmayı hemen sonlandırır.
İlk çalıştırmada yaklaşık 30 MB boyutundaki derleyici indirilir. Tarayıcınız onu önbelleğe alır ve bundan sonra tipik bir program bir saniyeden çok daha kısa sürede derlenir. Kaynak dosyanızı kaydetmek için Kopyala veya main.c, metin boyutunu değiştirmek için A− ve A+, düzenleyiciyle çıktıyı yan yana veya alt alta yerleştirmek için düzen düğmesini, daha fazla alan için de Tam ekran (Ctrl/⌘ + Shift + F, çıkmak için Esc) seçeneğini kullanın.
Derleme de çalıştırma da tarayıcınızın içinde gerçekleşir. Kodunuz hiçbir zaman bir sunucuya gönderilmez. Düzenleyici son programınızı tarayıcınızın yerel depolama alanında tutar; başka hiçbir yerde saklanmaz.
Nasıl çalışır, neler desteklenir?
Bu, C'yi taklit eden bir yorumlayıcı değil, gerçek bir derleyicidir. Sayfa, YoWASP projesi tarafından WebAssembly'ye derlenmiş Clang/LLVM 21 çalıştırır. Clang, main.c dosyasını tarayıcınızın çalıştırdığı bir WebAssembly (WASI) programına dönüştürür. Derleyici seçenekleri şunlardır:
clang main.c -std=c17 -O2 -Wall -lm -o main.wasm
- C17; optimizasyon (
-O2) ve yaygın uyarılar (-Wall) açık. - wasi-libc'den C standart kütüphanesi:
stdio.h,stdlib.h,string.h,ctype.h,stdint.h,time.hve daha fazlası. Matematik kütüphanesi bağlanmıştır; bu yüzdenmath.hiçindekisqrt,powvesin, sizin-lmeklemenize gerek kalmadan çalışır. - Birebir tanılama mesajları: hatalar ve uyarılar, Clang'in yazdırdığı şekliyle
main.c:satır:sütunkonumlarıyla gösterilir. - Çıkış kodları:
main0'dan farklı bir değer döndürürse çıktı İşlem N koduyla sonlandı mesajıyla biter.
Tarayıcı korumalı alanının sınırlamaları:
- İş parçacığı yok.
pthread.hkullanılamaz. - Soket veya ağ erişimi yok;
forkveyaexecde yok. - Gerçek bir dosya sistemi yok. Bilgisayarınızdaki dosyaları açamazsınız; bunun yerine stdin'i veya kaynak koddaki verileri kullanın.
- Grafik veya GUI kütüphanesi yok: SDL, OpenGL veya
conio.h/graphics.hkullanılamaz. Çıktı düz metindir.
Derleyicinin fark etmenize yardım ettiği yaygın C hataları
scanf'in ne döndürdüğünü kontrol edin. Değerin kendisini değil, okuduğu değer sayısını döndürür. stdin kutusu boşsa veya sayı beklenen yerde metin varsa değişken önceki değerini korur ve bu değer rastgele bir çöp değer olabilir. Başlangıç programı güvenli kalıbı gösterir:
int n;
if (scanf("%d", &n) != 1) {
fprintf(stderr, "expected a number\n");
return 1; /* reported as exit code 1 */
}
printf biçim belirteçlerini türlerle eşleştirin. int için %d, long için %ld, long long için %lld, size_t için %zu, double için %f ve bir karakter için %c kullanın. -Wall ile Clang, bir double değerini %d ile yazdırmak gibi uyuşmazlıklar için uyarır; bu yüzden program çalışsa bile uyarıları okuyun.
Tamsayı taşmasına dikkat edin. 32 bitlik bir int 2.147.483.647'de durur ve işaretli taşma C'de tanımsız davranıştır. -O2 ile optimize edici bunun hiç olmadığını varsayabilir; bu nedenle taşan bir döngü basitçe başa sarmak yerine tuhaf davranabilir. Faktöriyeller, büyük toplamlar ve çarpımlar için long long (veya stdint.h içindeki int64_t) kullanın.
long long f = 1;
for (int i = 2; i <= 20; i++) f *= i;
printf("20! = %lld\n", f); /* 2432902008176640000 */
#include anlamına gelir; örneğin malloc için stdlib.h veya strlen için string.h.Sıkça sorulan sorular
Hangi derleyici ve hangi C standardı kullanılıyor?
C17 modunda, -O2 -Wall seçenekleriyle Clang 21 (LLVM). GCC için yazılmış kodların çoğu, standart C'ye bağlı kaldığı ve platforma özgü başlık dosyalarından kaçındığı sürece değiştirilmeden derlenir.
Kodum herhangi bir yere yükleniyor mu?
Hayır. Derleyicinin kendisi tarayıcınızda çalışır; kaynak kod, derlenen program ve çıktısı cihazınızda kalır.
Programıma nasıl girdi veririm?
Çalıştır'a basmadan önce girdiyi stdin kutusuna yazın. Değerler, bir terminale yazarken olduğu gibi boşluklarla veya yeni satırlarla ayrılabilir. Girdi bittiğinde scanf, EOF döndürür.
Programım neden süre sınırı mesajıyla duruyor?
Program seçilen sınırdan uzun sürdü; bu genellikle hiç bitmeyen bir döngüye işaret eder. Döngü koşulunu kontrol edin veya gerçekten uzun hesaplamalar için 60 sn'yi seçin.
Burada C++ derleyebilir miyim?
Aynı Clang'i C++20 modunda çalıştıran online C++ derleyiciyi kullanın. Diğer diller için tüm online derleyicilere göz atın.
Güncellendi