warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘time_t’

Linux编程出错:今天写时间编程,测试一个小程序。

测试程序

编译的时候却报错:

编译报错

错误分析:%d 需要另一个类型的整数,应该是长整型或无符号。

粘贴错误指令搜索,发现了解决办法:https://blog.csdn.net/u011068702/article/details/55504943

  • %md,m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。
  • %ld(%mld 也可),输出长整型数据。
  • u 格式符,用来输出 unsigned 型数据,无符号数,以十进制数形式输出。格式:%u,%mu,%lu 都可。

解决:使用 %ld 替代 %d 输出 time_t 类型。

解决结果

Updated: