26 Mart 2010, Cuma
Nasıl baskı değişken portably size_t?
size_t
, printf()
kullanarak yazdırmak istediğim türde bir değişken var. Ne biçim belirtici yazdırmak için kullanın portably?
32-bit makine, %u
doğru görünüyor. -G g-W-Wall -Werror -ansı derlenmiş-ukala ve uyarı vardı. Ama ben 64-bit kod makine derlerken uyarı üretir.
size_t x = <something>;
printf( "size = %u\n", x );
warning: format '%u' expects type 'unsigned int',
but argument 2 has type 'long unsigned int'
Uyarı eğer değiştirirsem beklenen, 6 ** olarak geçer.
Soru, nasıl 32 - ve 64 - bit makineler, hem de ücretsiz uyarı derler ki kod yazmak.
Edit: bir cevap "" 8**. ** 7, ve bir baskı içine değişken atama için olabilir sanırım Yani her iki durumda da işe yarar. Eğer başka bir fikrin varsa arıyorum.
CEVAP
26 Mart 2010, Cuma
z
değiştirici kullanın:
size_t x = ...;
ssize_t y = ...;
printf("%zu\n", x); // prints as unsigned decimal
printf("%zx\n", x); // prints as hex
printf("%zd\n", y); // prints as signed decimal
Bunu Paylaş:
Nasıl baskı eclipse üzerinde bir değiş...
Nasıl off_t ve size_t gibi baskı türle...
Nasıl referans bir değişken geçtim mi?...
Nasıl değişken olup olmadığını belirle...
Nasıl Python stderr için baskı?...