1

以下代码应该可以正常工作(这是stackoveflow中公认的答案),但不知何故我收到了两个警告,因此我收到了分段错误。怎么了?

time_t timer;
char buffer[25];
struct tm* tm_info;

time(&timer);
tm_info = localtime(&timer);

strftime(buffer, 25, "%Y:%m:%d%H:%M:%S", tm_info);

bead.c:61: 警告:赋值使指针从没有强制转换的整数 bead.c:63: 警告:内置函数âstrftimeâ 的隐式声明不兼容

line 61 is tm_info = localtime(&timer);
and line 63 is strftime(buffer, 25, "%Y:%m:%d%H:%M:%S", tm_info);
4

3 回答 3

2

所以...编译器认为localtime返回一个整数并且strftime不存在?

你确定你包括 <time.h>

于 2012-11-08T19:51:37.240 回答
0

我已经在“gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)”中对其进行了测试,一切正常!

谢谢!

于 2012-11-08T19:48:43.017 回答
0

如果我不包含 time.h,则此代码会出现段错误,如果我这样做,则不会出现段错误。

如果没有 time.h,您的编译器将不知道函数的签名并假定它是一个返回 int 的函数(如果我的记忆很好的话)。

长话短说,包括 time.h

于 2012-11-08T19:52:25.477 回答