2009-04-22 38 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類型的系統上,您可能會獲得不同的值。