2012-02-14 17 views

回答

11

這不是一個不透明的類型,而是一個整數類型的別名。例如,在我的系統,我發現在不同的頭文件如下:

typedef __pid_t pid_t; 
... 
# define __STD_TYPE  typedef 
__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */ 
... 
#define __PID_T_TYPE  __S32_TYPE 
... 
#define __S32_TYPE  int 

因此,你說得對,pid_t只是一個int。不過,我會說有幾個原因要做到這一點:

  • 可讀性:明確一個變量將被用作PID(wikipedia reference)。
  • 可維護性:確保所有PID變量的類型在將來可以根據需要進行更改。例如,如果pid稍後需要更寬的數據類型(例如long int),則只需更改typedef,重新編譯並且所有內容都應正常工作。事實上,我相信這已經發生在不同的架構上。
+4

+1指向我寫的維基百科中的某些東西! :) – 2012-02-15 09:01:23

+0

謝謝collado。 – ChandanK 2012-02-16 05:59:20

相關問題