在写关于时间函数的程序中,报错called object is not a function,函数代码如下
void GetLocalTime()
{
char localtime[20];
int year,month,date,hour,minute,second;
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep); //called object is not a function
year = 1900+p->tm_year;
month = 1 + p -> tm_mon;
date = p -> tm_mday;
hour = p -> tm_hour;
minute = p -> tm_min;
second = p -> tm_sec;
sprintf(localtime,"%d:%d:%d %d/%d/%d",
hour, minute, second,date,month,year);
}
表面上程序似乎没错误,但细心就回发现,定义的char型数组名为localtime,这样会将指定为函数的localtime( p = localtime(&timep);)改变成指到一个数组的指针,只需将数组名改为localtime1或其他即可。
大家有时也习惯通过char *time来定义一个字符指针,这样会报相同的错误,原因是指针time会与time()函数发生冲突。导致time函数被屏蔽掉。