读书人

求异常原因

发布时间: 2012-02-21 16:26:23 作者: rapoo

求错误原因
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型)产生的;
[解决办法]

探讨

我用-Wall选项编译运行这个程序:

#include <time.h>
#include <stdio.h>

char *GetSysTime(void)
{
char *timeMsg;
time_t timeval;
(void)time(&timeval);
if((timeMsg = ctime(&timeval)……

读书人网 >UNIXLINUX

热点推荐