这是您发现的(非常常见,我将添加)用于在C和C ++中显示当前时间的代码。
time_t tt;
struct tm * ti;
time (&tt);
ti = localtime(&tt);
cout << asctime(ti);
这是我的理解:
struct tm是ctime头文件中的结构。
我似乎无法将ti包裹住。它似乎是tm的指针对象,但是为什么在这里使用“ struct”关键字呢?不是tm已经存在的结构吗?
什么时间(&tt)?在tt中存储时间值?
答案 0 :(得分:0)
tt
不是 object ,它是类型为time_t struct tm *
是一种数据类型:指向struct tm
的指针。如果您对此不熟悉,请尝试在纯C中实现堆栈,队列或链表。
RTFM:来自文档(man 2 time
)
time_t time(time_t * tloc);
DESCRIPTION
time()返回以1970年1月1日00:00:00 +0000的纪元为单位的秒数 (世界标准时间)。如果tloc为非NULL,则返回值也存储在tloc指向的内存中。
是的,时间现在存储在ti
和tt
中。
参见What is the difference between clock_t, time_t and struct tm?
答案 1 :(得分:0)
time_t tt; // a data type to store the number of seconds since the epoch
struct tm * ti; // a structure that stores the number of seconds decoded into
// integers for year, month, day, hour, etc
time (&tt); // get the current time and store it in tt
ti = localtime(&tt); //decode the seconds into separate year/month/day/etc ints
cout << asctime(ti); // convert the ints into string representation and print it