求错误原因
char *GetSysTime(void)
{
char *timeMsg;
time_t timeval;
(void)time(&timeval);
if((timeMsg=ctime(&timeval))==NULL) //编译时此行警告
return NULL;
else
return timeMsg;
}
警告内容:
warning: assignment makes pointer from integer without a cast
这是《Linux程序设计》里面的代码,我man查看了time/ctime函数的类型,并没发现问题,求指点!!!
------解决方案--------------------有没有包含头文件?
#include <time.h>
------解决方案--------------------我用-Wall选项编译运行这个程序:
#include <time.h>
#include <stdio.h>
char *GetSysTime(void)
{
char *timeMsg;
time_t timeval;
(void)time(&timeval);
if((timeMsg = ctime(&timeval)) == NULL)
return NULL;
else
return timeMsg;
}
int main(int argc, char *argv[])
{
printf("%s\n", GetSysTime());
return 0;
}
结果编译运行结果都正常,没有警告;
warning: assignment makes pointer from integer without a cast
-------------------------
这个警告一般是由于使用了未经声明的函数原型(默认返回值为int型)产生的;
------解决方案--------------------