LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1468|回复: 5

请教一下time函数的用法,谢谢!

[复制链接]
发表于 2005-3-7 00:24:53 | 显示全部楼层 |阅读模式
最近在看linux程序设计一书,关于time函数的用法总是没搞懂,请高手指点。

这是time的调用格式:
#include <stdio.h>
time_t time(time_t   *tloc);
其中tloc指定写入位置。


书上有这几种用法,没看懂:
time_t the_time;
the_time = time((time_t *)0);----没看懂,括号里的参数是什么意思?怎么和调用格式不一样?请指点。


还有一例:
struct tm *tm_ptr;
time_t the_time;

(void) time(&the_time);------同样没搞清楚参数与标准调用格式的关联。
tm_ptr = gmtime(&the_time);------上一句没看懂,这一句就没法了,当然只是参数,不是指赋值。

没办法,本不想麻烦各位的,但纳闷几天了没结果,只有求助各位高手。愚钝,呵呵。
谢谢!
发表于 2005-3-7 09:06:18 | 显示全部楼层
time 的定义是:
time_t time(time_t *t); 参数是time_t*型。

the_time = time((time_t *)0); 中参数是 0,但何以见得 0 是 time_t* 型? 于是前面加 (time_t *) 强行类型转换,使得参数为 time_t* 型,符合函数定义。

(void) time(&the_time); 中 the_time 是 time_t 型,前面加取地址运算符 &,结果当然是 time_t* 型,符合函数定义。

你不是函数没看懂,是 C 语言没看懂,还是再从基础好好学一下吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-7 10:13:02 | 显示全部楼层
Post by doubleelec
time 的定义是:
time_t time(time_t *t); 参数是time_t*型。

the_time = time((time_t *)0); 中参数是 0,但何以见得 0 是 time_t* 型? 于是前面加 (time_t *) 强行类型转换,使得参数为 time_t* 型,符合函数定义。

(void) time(&the_time); 中 the_time 是 time_t 型,前面加取地址运算符 &,结果当然是 time_t* 型,符合函数定义。

你不是函数没看懂,是 C 语言没看懂,还是再从基础好好学一下吧。


懂了,懂了,自掌三十耳光。谢谢老兄的指点。

不是我不学基础呀,C是学过的,但就是不能活学活用,看这本书就是想在实践中巩固和提高。老兄一说,汗颜!!!

再次谢谢老兄的指点!
回复 支持 反对

使用道具 举报

发表于 2005-3-7 10:50:55 | 显示全部楼层
实践少啊,哎!
回复 支持 反对

使用道具 举报

发表于 2005-3-7 11:57:16 | 显示全部楼层
Post by doubleelec
time 的定义是:
time_t time(time_t *t); 参数是time_t*型。


从 C 的定义来说,这是一个函数的声明,或者说是一个函数的原型,而不是一个函数的定义。
回复 支持 反对

使用道具 举报

发表于 2005-3-7 12:15:54 | 显示全部楼层
呵呵,楼上正解,so sorry!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表