SORU
2 Ocak 2012, PAZARTESİ


İşaretsiz kısa tamsayı için Biçim belirteci nedir?

Aşağıdaki program var

#include <stdio.h>

int main(void)
{
    unsigned short int length = 10; 

    printf("Enter length : ");
    scanf("%u", &length);

    printf("value is %u \n", length);

    return 0;
}

Ne zaman kullanarak derlenmiş olan gcc filename.c aşağıdaki uyarı (scanf() satır) yayınladı.

warning: format ‘%u’ expects argument of type ‘unsigned int *’, but argument 2 has type ‘short unsigned int *’ [-Wformat]

Ben başvurulan C99 specification - 7.19.6 Formatted input/output functions olduğunu anlayamamıştım doğru biçimde belirleyici kullanırken uzunluğu değiştiriciler (short, long, vb) ile unsigned int veri türü.

%u 12 ** doğru belirtici? Neden yukarıda belirtilen uyarı alıyorum?! eğer öyleyse

EDİT: Çoğu zaman, %uh çalışıyordum ve hala uyarı veriyordu.

CEVAP
2 Ocak 2012, PAZARTESİ


"%h" değiştirici kullanmayı deneyin:

scanf("%hu", &length);
        ^

Aşağıdaki d , ı , o , u , x , X veya n dönüşüm belirtir belirtici türü ile bir değişken için geçerlidirkısa veya işaretçi imzasız kısa.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008
  • NYLON Video

    NYLON Video

    11 Aralık 2006