- 主题:C++新功能越多,程序员越省事,编译器越复杂
可能要根据时区考虑,比如夏令时
不考虑时区的,一般计算可能是有问题的。
比如我这里有人从网上搜的这个函数(搜常数11644473600能找到SO的原帖子)
#define WINDOWS_TICK 10000000
#define SEC_TO_UNIX_EPOCH 11644473600LL
LONGLONG C::WinTime2UnixTime(IN LONGLONG llWindowTime) {
const auto seconds = llWindowTime / WINDOWS_TICK;
return (seconds >= SEC_TO_UNIX_EPOCH) ? (seconds - SEC_TO_UNIX_EPOCH) : 0;
}
而且这个时间差值已经抽象为C++的std::chrono里的duration了
【 在 ylh0315 的大作中提到: 】
: 访问不了。
: 主要原理是把时间作为一个整数,以一个时刻为0点,1899.12.31:00:00:00.000000为0点,按照日,分,秒,微秒的粒度,表示为一个整数,就方便各种计算啦,需要的是,各种表示格式与整数的互相转换。
--
修改:z16166 FROM 221.220.171.*
FROM 221.220.171.*
没看到过。没这个需求,浏览器和eink里能看也不错的
【 在 easior 的大作中提到: 】
: 这个文档有 PDF 版吗?
--
FROM 221.220.171.*
闰秒这个问题,我好想记得你还是谁以前在某个帖子里提到过,有印象
【 在 milksea 的大作中提到: 】
: 时区是一方面,闰秒之类也是大坑。不涉及日期就单纯多了。
--
FROM 221.220.171.*
实时控制的环境比较严苛点,只求稳。而且正规点肯定有编码规范来裁剪出可以用、不能用的特性。
原子弹不能随便搞,茶叶蛋还是可以随便搞的。桌面应用算是茶叶蛋级别吧。
之前了解到医疗器材行业,每个版本的软件源码、文档等必须提交备案,器材里的软件不能随便升级。安全稳定第一,反正人命相关的,出了事情就是大事。
【 在 wanllow 的大作中提到: 】
: 反正搞实时控制的行业,一般不太敢用这些新功能
--
修改:z16166 FROM 221.220.171.*
FROM 221.220.171.*
os属于受限环境,肯定不能随便用c++ exception
而且编译器的c++ exception实现根本就不支持kernel模式的,得自己实现。
windows平台有人实现了一个用于kernel driver的c++ exeption框架,没啥人用。
【 在 ylh0315 的大作中提到: 】
: 但是,这个特性似乎不适合用于操作系统,catch跳过许多中间函数,其间的内存是否都能正确析构,不能确定。
: 我宁可一层层的error return。
--
FROM 221.220.171.*