我对(例如)pid_t的声明感到困惑.__pid_t是什么意思?它是在别处定义的另一种类型吗 如果是的话,在哪里?为什么我的types.h在ubuntu 13.04 64bit中定义了pid_t,如:
#ifndef __pid_t_defined
typedef __pid_t pid_t;
#define __pid_t_defined
#endif
Run Code Online (Sandbox Code Playgroud)
而不是像
typedef int pid_t;
Run Code Online (Sandbox Code Playgroud)
我看到一些网站有types.h标头,声明是最后一种方式.这是一个:http: //www.sde.cs.titech.ac.jp/~gondow/dwarf2-xml/HTML-rxref/app/gcc-3.3.2/lib/gcc-lib/sparc-sun-solaris2 0.8/3.3.2/include/sys中/ types.h.html
更新:
好的我发现pid_t是__pid_t,它是一个__PID_T_TYPE,它是一个__S32_TYPE,它是一个int.我现在的问题是为什么会这样?POSIX只声明pid_t必须是有符号整数,那么为什么要使声明在头文件中深入输入?