called object is not a function取时间报错的原因

本文介绍了一个关于时间函数的编程问题及解决方案。问题出现在尝试获取本地时间时,由于变量命名不当导致了函数调用错误。文章详细解释了如何通过更改变量名称来避免与标准库函数的冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写关于时间函数的程序中,报错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函数被屏蔽掉。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值