2009-04-22 73 views

回答

3

使用PRIxx宏的最好方法?

据我所知,是的。

编辑:另一种解决方案是投一个类型,它是至少一样宽,你要打印的一个。例如,int至少2个字节宽,以便能打印int16_tprintf("%d\n", (int)some_var)

0

是的,如果你正在使用新的类型,你真的应该使用新的格式说明。

这是做实施以来,已经做好了确保格式字符串将是正确的类型繁重的工作的最佳途径。

因此,举例来说:

#include <stdio.h> 
#include <stdint.h> 
#include <inttypes.h> 

int main (void) { 
    int32_t i32 = 40000; 
    printf ("%d\n", i32);   // might work. 
    printf ("%" PRId32 "\n", i32); // will work. 
    return 0; 
} 

显示做的都方式。

但是,实际上有没有保证第一个将按照您的预期。例如,在一个包含16位int类型的系统上,您可能会获得不同的值。