【发布时间】:2019-05-29 16:54:31
【问题描述】:
我需要从time.h 对struct tm 执行简单的算术运算。我需要增加或减少秒或分钟,并且能够规范化结构。通常,我会使用 mktime(3) 来执行这种标准化作为副作用:
struct tm t = {.tm_hour=0, .tm_min=59, .tm_sec=40};
t.tm_sec += 30;
mktime(&t);
// t.tm_hour is now 1
// t.tm_min is now 0
// t.tm_sec is now 10
我在具有 32 kB 闪存的 STM32 上执行此操作,并且二进制文件变得非常大。 mktime(3) 和它提取的其他内容占用了 16 kB 的闪存——可用空间的一半。
newlib 中是否有专门负责struct tm 规范化的函数?我意识到链接到这样的私有函数会降低代码的可移植性。
【问题讨论】: