首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

求异常原因

2012-02-21 
求错误原因char *GetSysTime(void){char *timeMsgtime_t timeval(void)time(&timeval)if((timeMsgctim

求错误原因
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(&amp;timeval);
if((timeMsg = ctime(&amp;timeval)……

热点排行