SORU
2 Temmuz 2010, Cuma


printf biçim uint32_t ve size_t için belirteçleri

gcc 4.4.4 c89 -Duvar -Wextra

Şu var

size_t   i = 0;
uint32_t k = 0;

printf("i [ %lu ] k [ %u ]\n", i, k);

Derleme yaparken aşağıdaki uyarıyı alıyorum:

format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’

Bu kullanarak atel çalıştırdığımda aşağıdaki gibi:

Format argument 1 to printf (%u) expects unsigned int gets size_t: k

Herhangi bir tavsiye için çok teşekkürler

Steve

CEVAP
2 Temmuz 2010, Cuma


Deneyin

#include <inttypes.h>
...

printf("i [ %zu ] k [ %"PRIu32" ]\n", i, k);

z size_t PRIu32 makro defined in the C99 header inttypes.h, işaretsiz bir 32-bit tamsayı temsil eder aynı uzunlukta bir tamsayı temsil eder.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • HTC

    HTC

    12 Ocak 2006
  • New Scientist

    New Scientis

    27 Kasım 2006