pid_t 型別在 linux 環境程式設計中用於定義程序 id,需要引入標頭檔案,首先看一下頭檔案
/usr/include/sys/types.h
中關於 pid_t 的定義。
#ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif
可見pid_t
等同於__pid_t
,繼續尋找__pid_t
的定義。
標頭檔案中包含了標頭檔案
,根據名稱可見與型別的定義相關,我們在標頭檔案
中找到了
__pid_t
的定義如下:
#if __wordsize == 32
#define __std_type __extension__ typedef
#elif __wordsize == 64
# define __std_type typedef
#else
# error
#endif
__std_type __pid_t_type __pid_t; /* type of process identifications. */
也就是說如果我們編譯的程式是 32 位的,那麼__pid_t
的定義如下:
__extension__ typedef __pid_t_type __pid_t;
如果我們編譯的程式是 64 位的,那麼__pid_t
的定義如下:
typedef __pid_t_type __pid_t;
其中__extension__
的作用是:gcc 對標準 c 語言進行了擴充套件,但用到這些擴充套件功能時,編譯器會提出警告,使用__extension__
關鍵字會告訴gcc 不要提出警告。
__pid_t
的定義等同於__pid_t_type
,我們繼續尋找__pid_t_type
的定義,在標頭檔案中我們發現
__pid_t_type
的定義如下:
#define __pid_t_type __s32_type
至此,我們找到了pid_t
的定義等同於__s32_type
。那__s32_type
又是什麼型別呢?我們返回至標頭檔案
發現有如下定義:
#define __s32_type int
至此,我們得出如下結論:
pid_t 等於 int。
Objective C 定義的型別
以下列出的是objective c內建的型別集合 型別定義 id物件的引用 指向其資料結構的指標 class類物件的引用 指向其資料結構的指標 sel選標 編譯器分配用來區分方法名的編碼 imp指向方法實現的指標,該實現返回id bool布林值,yes or no nil空的物件指標,id 0 ni...
pid t的型別定義
pid t的型別定義 建立程序時經常會用到程序號的型別定義 pid t。我們都知道這個型別定義實際上就是int型。但是在linux下的c中的標頭檔案中這個定義到底是怎麼定義的呢?今天就把以前找這個定義的過程貼出來 1.首先在 usr include sys types.h中有如下定義 include...
pid t的型別定義
建立程序時經常會用到程序號的型別定義 pid t。我們都知道這個型別定義實際上就是int型。但是在linux下的c中的標頭檔案中這個定義到底是怎麼定義的呢?今天就把以前找這個定義的過程貼出來 1.首先在 usr include sys types.h中有如下定義 include ifndef pid...