C連載18-轉換說明,轉換說明修飾符、sizeof返回類型可移植

1、printf()函數

  • 經常使用的轉換說明
轉換說明 輸出
%a 浮點數,十六進制數和p計數法
%A 浮點數,十六進制數和p計數法
%c 單個字符
%d 有符號的十進制數
%e 浮點數,e計數法
%E 浮點數,e計數法
%f 浮點數,十進制計數法
%g 根據值的不一樣,自動選擇%f或者%e,%e格式用於指數小於-4或者大於或等於精度時
%G 根據值的不一樣,自動選擇%f或者%E,%E格式用於指數小於-4或者大於或等於精度時
%i 有符號的十進制整數
%o 無符號的八進制數
%p 指針
%s 字符串
%u 無符號的十進制數
%x 無符號十六進制整數,使用十六進制數0f
%X 無符號十六進制整數,使用十六進制數0F
%% 打印一個%號
  • printf()的轉換說明修飾符
修飾符 含義
標記 五種標記(-、+、空格、#和0),能夠不使用標記或者使用多個標記,示例:"%-10d"
數字 最小字段寬度,若是該字段不能容納待打印的數字或者字符串,系統會使用更寬的字段,示例:"%4d"
.數字 精度,對於%e,%E和%f轉換,表示小數點右邊數字的位數;對於%g和%G轉換,表示有效數字的最大位數;對於%s轉換,表示待打印字符的最大數量;對於整形裝歡,表示待打印數字的最小位數;若是有必要,使用前導0來達到這個位數;只使用.表示其後跟隨一個0,因此%.f和%.0f相同;示例:"%5.2f"打印一個浮點數,字段寬度爲5字符,其中小數點後有兩位數字
h 和整形轉換說明一塊兒使用,表示short int或者unsigned short int類型的值,示例:"%hu","%hx","6.4hd"
hh 和整形轉換說明一塊兒使用,表示signed char或unsigned char類型的值。示例:"%hhu","%hhx","%hh6.4hhd"
j 和整形轉化一塊兒使用,表示intmax_t或者uintmax_t類型的值,這些類型定義在stdint.h中,示例:"%jd","8jx"
l 和整形轉換說明一塊兒使用,表示long int或則和unsigned long int類型的值,示例:"%ld","%8lu"
ll 和整形轉換說明一塊兒使用,表示long long int 或unsigned long long int類型的值,示例:"%lld","%8llu"
L 和浮點轉換說明一塊兒使用,表示long double類型的值,示例:"%Lf","10.4Le"
t 和整形轉換說明一塊兒使用,表示ptrdiff_t類型的值,ptrdiff_t是兩個指針差值的類型,示例:"%td","%12ti"
z 和整形轉換說明一塊兒使用,表示size_t類型的值,size_t是sizeof返回的類型,示例:"%zd","%12zd"
  • 類型的可移植性,從上表的最後兩行能夠看到,sizeof是一個運算符,當返回計算結果的時候,必然是無符號的整形,可能爲unsigned int,unsigned long,unsigned long long,因此不一樣的系統,可能返回值不同,所以定義了size_t類型的來表示sizeof返回的類型,這種被稱爲底層類型。倒數第二行也是同理。
  • 對於浮點類型,只有double和long double類型的轉換說明(%f,%lf),可是打印float的時候也能夠那兩個轉換,這是由於C自動轉換爲double了。

2、源碼:

相關文章
相關標籤/搜索