sid*_*yll 0 c macos time x86-64 ctime
如果用户类型time_t定义为__darwin_time_t,其本身long在MacOS X中定义,为什么以下代码输出8 Time is (null)?也许这是愚蠢的事,但我无法理解它.
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t time = 0x7FFFFFFFFFFFFFFF;
printf("%lu\n"
"Time is %s\n", sizeof(time_t), ctime(&time));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
时间0x7FFFFFFFFFFFFFFF似乎在公元292,471,210,647附近,这无疑导致ctime超过C99保证的26个字符,因此它返回NULL而不是溢出其缓冲区.一般来说,尽量避免在莫洛克与Eloi发生战争后发生的任何日期.
| 归档时间: |
|
| 查看次数: |
1978 次 |
| 最近记录: |