Programlama hakkında çok bilinmediğini düşündüğünüz bir bilgi bırakın

@TheAny
C99 Dev-C++ kullansan çalışmadığını görürsün. 90'da zaten compile eder. Sorun 99'da çözüldü çünkü.
Sebep de C90 ve altı default bir f() fonksiyonu atıyor. Bu fonksiyon içine giren her parametreyi alır ve varsayılan olarak int döndürür. Senin fonksiyonun int döndüren basit bir fonk. olduğu için kendisini farkettirmeden çalıştı. Ancak aşağıdaki gibi daha farklı tür döndüren fonksiyonları çalıştıramayacaksın. Artı olarak çalışan fonksiyonuna geri dön ve a(x,y,c,b,h,r) gibi parametreler ver asla uyarı almayacaksın. Bu C'de bir hata ve güncellemelerde düzeltilmiş.
Artı olarak online complara güvenmiyorum yani c99 der 90 çalıştırır belli olmaz DevCpp üzerinden kontrol edebilirsin. (Dosya ismi için kusura bakma sana özel değil. Testleri yaptığım çöp workspace.)

Seninkine benzer basit bir toplama fonksioyonu. (C11 ve C99 compile almadı. C90 çalıştırdı.)
1664891043908.png


Bahsettiğim int döndürülemeyecek fonksiyon.

C:
#include <stdio.h>

typedef struct {
    int a;
    float b;
} Test;

int main(void) {
    f(0, 1, 2);
    return 0;
}

Test f(int a, int b, int c) {
    return (Test) { .a = a, .b = (float)b };
}
 

Dosya Ekleri

  • 1664891024496.png
    1664891024496.png
    292,6 KB · Görüntüleme: 27
Artı olarak online complara güvenmiyorum yani c99 der 90 çalıştırır belli olmaz DevCpp üzerinden kontrol edebilirsin.
__STDC_VERSION__ makrosundan alıyorum sürüm bilgisini.
C99 Dev-C++ kullansan çalışmadığını görürsün.
C99 deneyeyim.

@özgün deniz fark etmiyor. Warning veriyor ama yine de başarılı bir şekilde derleyip çıktı veriyor. Kullandığım versiyon bu sefer C99.
1664891614525.png
 
Son düzenleme:
@TheAny
Yani Online zaten güzel bir ortam değil. C diyorsak aklımıza C11 gelmesi lazım. Standart versiyon bu çünkü. C11'de de buna izin verilmez çünkü büyük hatalar oluşabilir. Artık onda da verirse farklı bir durum söz konusu çünkü ben zaten derleyip çalıştıramadım olmaz çünkü.
Yani bunu çalıştırsanız da bir şey fark etmez üstteki fonksiyonu hiçbir zaman çalıştıramayacaksınız.
 

Yeni konular

Geri
Yukarı