当我给strftime无效的说明符时会发生什么?

时间:2015-09-04 10:10:47

标签: c

我试图为strftime提供不在列表中的修饰符%k,它打印11,当我提供不在其列表中的修饰符时,strftime会做什么?

2 个答案:

答案 0 :(得分:1)

来自strftime的C标准:

  

6如果转换说明符不是上述之一,则行为为   未定义。

你可以看到strftime的list of format specifiers。所以你得到的是未定义的行为

请参阅有关%k

manual
  

%k 小时(24小时制)作为十进制数(范围0到23);           单个数字前面有空格。 (另见%H。)(TZ)

答案 1 :(得分:1)

  

%k -     小时数作为十进制数,使用像%H这样的24小​​时制,但填充空白(范围0到23)。

但是这种格式是GNU扩展。 See here listed specifiers

如果使用未列出的说明符,代码将exbhit 未定义的行为