GetLocalTm的定义为:
ATLTIME_INLINE struct tm* CTime::GetLocalTm(struct tm* ptm) const
{
#if _SECURE_ATL
// Ensure ptm is valid
ATLENSURE( ptm != NULL ); if (ptm != NULL)
{。
。
那么在下面的使用中:cTm.GetLocalTm(xxxxxxxx);中参数应该怎么写?
struct tm* my_localtime(const time_t * timer)
{
#ifdef _WIN32_WCE
CTime cTm(*timer);
struct tm* pTm = cTm.GetLocalTm( );
return pTm;
#else
return _localtime(timer);
#endif
}
自己定义一个struct tm ttm
然后参数写成cTm.GetLocalTm(&ttm);这样行吗?
ATLTIME_INLINE struct tm* CTime::GetLocalTm(struct tm* ptm) const
{
#if _SECURE_ATL
// Ensure ptm is valid
ATLENSURE( ptm != NULL ); if (ptm != NULL)
{。
。
那么在下面的使用中:cTm.GetLocalTm(xxxxxxxx);中参数应该怎么写?
struct tm* my_localtime(const time_t * timer)
{
#ifdef _WIN32_WCE
CTime cTm(*timer);
struct tm* pTm = cTm.GetLocalTm( );
return pTm;
#else
return _localtime(timer);
#endif
}
自己定义一个struct tm ttm
然后参数写成cTm.GetLocalTm(&ttm);这样行吗?
CTime cTm(*timer);
tm rtm;
tm *pTm = cTm.GetLocalTm(&rtm);
返回一个指向已填好的struct tm的指针,struct tm是在包含文件TIME.H中定义的。关于该结构的成员安排,参见GetGmtTm。参数: ptm 指向一个将用来接收实际数据的缓冲区。如果这个指针是NULL,则使用一个内部的、静态分配的缓冲区。调用其它的CTime成员函数将导致此缓冲区中数据被改写。 说明:
此成员函数用来获取一个包含此CTime对象的分解后的各个成分的struct tm。GetLocalTm返回本地数据。
tm osTime; // A structure containing time elements.
t.GetLocalTm(&osTime);
ATLASSERT(osTime.tm_mon == 2); // Note zero-based month!
==这是msdn中的例子。
tm stTM;
tm1.GetLocalTm(&stTM);
其实很多函数都是定义成这样。你通过参数和返回值都可以得到相同的值。
比如一些字符串的转换函数,它的返回值一般都是char*,其实和一些返回参数的作用是一样的。
是tm *pTm = cTm.GetLocalTm( NULL );