Non-Profit, International

Spirit unsterblich.

  • Windows 禁止应用多实例

    字数统计:978
    “简单”研究了一下 Windows 如何禁止应用开启多实例,实际有两个通用方案:使用 CreateFileW 在临时文件夹中创建一个独占的文件实现互斥以及使用 CreateMutexExW 创建一个独占的具名互斥锁实现互斥;需要监听端口的程序使用 bind 时也自带这种效果。这些方法都能实现原子的互斥,我曾经遇到过手速过快导致某些禁止多实例的应用开启多实例的问题,而这些方法能避免此问题。
  • C++ 杂谈

    字数统计:4704
    本文是我在知乎上的小回答的一个整理,内容比较杂而且语言随意,可能不够严谨。
  • C/C++ 储存周期

    字数统计:869
    本文是我在知乎上的回答的拷贝,澄清了 C/C++ 中储存周期的概念,纠正了长久以来网络上对于二进制段和内存区段的混淆以及照本宣科的描述,解释了 autoregisterstatic 等关键字的历史。
  • C++ Ranges

    字数统计:2107
    C++ 20 的一个重要改进就是范围(Ranges)以及范围库,范围通过管道运算使得以往需要使用多重循环的算法可以顺序描述,大大提高了算法的可读性。
  • C++ 已经取代 C

    字数统计:908
    本文是我在知乎上的回答的拷贝,指出 C 和 C++ 的发展不是孤立的,C89 在事实上采纳了 C++ 方言而取代了原本的 K&R 方言,并且未来的 C 标准也一直从 C++ 中吸收新特性,因此 C++ 实际上已经取代了 C (K&R 版)并持续作为标准 C 的蓝图。
  • 使用类包装枚举

    字数统计:529
    C++ 中的枚举类提供了一种定义常量的方式,但直接使用枚举往往存在表达能力不足的问题,导致用户使用繁琐,因此使用类堆枚举进行包装是常见的方式,使得枚举可以拥有自定义的继承关系和转换规则,这种手法也在 std::<partical | strong | weak>_ordering 中得到运用。
  • IEEE 754 浮点数表示法

    字数统计:820
    IEEE 754 是最常用的浮点数表示法,在使用浮点数前必须对其原理有详细的了解才可以写出没有精度损失而且安全的代码。