1
在調用printf
函數的同時,我們將short的長度修飾符作爲h?h用作長度修飾符的縮寫是什麼?
對於如
short s=10;
printf("%hd",s);
什麼的H表示?是否有任何具體的理由給名稱?
問這個問題的動機是標準選擇了l for long.
因爲長時間以l開頭就沒問題。
可能長h代表什麼?
在調用printf
函數的同時,我們將short的長度修飾符作爲h?h用作長度修飾符的縮寫是什麼?
對於如
short s=10;
printf("%hd",s);
什麼的H表示?是否有任何具體的理由給名稱?
問這個問題的動機是標準選擇了l for long.
因爲長時間以l開頭就沒問題。
可能長h代表什麼?
是的,通常的理解是'h'表示'半'或'半字',就像'l'表示'長'或'雙字'一樣。它實際上意味着'短',當然''已經被採納了。
它在printf中非常有用,因爲它可以確保在打印之前將該值返回到一個簡短值。在這種情況下,對於unsigned short int,'%hd'不如'%hu'有用。
它在scanf中也很有用,以確保只有正確的位數被存儲到一個短變量中。 但請參閱What is the purpose of the h and hh modifiers for printf?。
也許有一半?因爲's'意味着別的什麼,你還會用什麼其他的字母? – 2014-09-13 10:40:49
@RetiredNinja我aggree – 2014-09-13 10:42:22
沒有必要在printf中使用'%hd'或'%hhd'因爲所有小於int的類型都必須遵循var_arg函數中的默認升級規則,因此無論如何它都會被提升爲int http:// en .cppreference.com/w/cpp/io/c/fprintf – 2014-09-13 11:02:13