查看linux系统某宏的定义(另类)

时间:2023-03-10 20:39:49

有一次我想查看time_t类型的定义,一开始想直接在/usr/include/time.h中查找,结果里面没有,而是转到另外一个:__time_t(2个下划线),

结果又转到:__STD_TYPE __TIME_T_TYPE __time_t;

继续找:#define __TIME_T_TYPE       __SYSCALL_SLONG_TYPE

继续:# define __SYSCALL_SLONG_TYPE   __SQUAD_TYPE

最后:# define __SQUAD_TYPE       long int

我晕:只不过想查个time_t的类型而已,结果跳了这么多次,难道都是必须的吗?

郁闷之余,突然想到,既然后面都是宏,那么我直接写一个小程序,然后,用gcc -E查看一下最终形态不就可以了吗?

于是:

#include <stdio.h>
#include <time.h> int main(){
time_t hello;
return ;
}

然后:gcc -E t.c > t.i

然后:vim t.i

哈哈:直接查找: time_t

结果:# define __SQUAD_TYPE       long int

个人感觉比较快,:)