|
|
本帖最后由 不点 于 2017-3-12 21:31 编辑
那你试验一下,看看 sizeof (time_t) == ?的时候,它不再 failed,那就知道 time_t 有多长了。
可以试试 1,2,8,应该有一个是 time_t 现在的真实值。
就是说,修改一下 fbinst.c 的 main 函数里面的 sizeof (time_t) == 4,此处的 4 分别试试用 1,2,8 来代替,进行试验。
--------------------
——唉,痴呆了——
呵呵,啥也不用改,只在 main () 的 sizeof (time_t) == 4 的前面插入一行 printf 打印出 sizeof (time_t) 的值,不就知道它的长度了吗?
printf("\n sizeof(time_t) is %d \n", sizeof(time_t));
--------------------------------------------
它肯定是 8 字节嘛,不可能是单字节或双字节。
那么,我猜 time_t 是被 64 位的 Linux (或 gcc)的系统头文件定义为 8 字节了。我猜我们后续所尝试的重新定义是失效的。
所以,无论我们怎么改,time_t 的长度都保持 8 的值不变。
======================
因此,我们不能去修改 time_t 的定义了。我们只能修改 time_t 这个变量的名字,比如说,把它修改为 my_time_t,只要它不与系统变量名相同,即可。
然后,我们定义 my_time_t 为四字节,这就 OK 了。
jianliulin 如果觉得可行的话,那就不妨试试这个方案。
|
|