SORU
4 Mart 2010, PERŞEMBE


Bu program nasıl çalışır?

#include <stdio.h>

int main() {
    float a = 1234.5f;
    printf("%d\n", a);
    return 0;
}

0! görüntüler! Bu nasıl mümkün olabilir? Mantık nedir?


Kasten %d printf bir açıklama printf davranışlarını incelemek için koyduk.

CEVAP
4 Mart 2010, PERŞEMBE


%d int Bir beklediği için değil ama bir şamandıra temin ettik.

Yazdır%e/%f/%g şamandıra kullanın.


0 yazdırılır neden: kayan nokta sayısı printf göndermeden önce double dönüştürülür. Küçük indian çift gösterimi sayısı 1234.5

00 00 00 00  00 4A 93 40

%d tüketir 32-bit bir tamsayı, sıfır yazdırılır. (Bir test olarak, 16**.*.* 17) çıktı alabilirsin


float printf prototip olarak double, dönüştürülür nedenine gelince/7 6.5.2.2, 20*

Bir işlev prototip Bildiricisi üç nokta gösterim argüman tipi dönüşüm son parametre ilan etmesinden sonra durmasına neden olur.Varsayılan bağımsız değişken promosyon değişkenleri izleyen üzerinde gerçekleştirilir.

ve/6 6.5.2.2

Eğer çağrılan işlev gösterir ifadeyi bir prototip içermeyen bir tür varsa, tamsayı promosyonları her argüman üzerinde gerçekleştirilir21 ** türü argümanlar 22 ** yükseltildi.Bunlar denirvarsayılan argüman promosyonlar.

(Teşekkürler bu bulmak için Alok.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • talkandroid

    talkandroid

    27 Mayıs 2010