Skip to content

败犬日报 2024-12-31

1. C is not a low-level language

推荐阅读 https://queue.acm.org/detail.cfm?id=3212479

2. C++ 的异常处理能不能做到stack trace

C++23 加了 stacktrace,可以自己搓个异常类型构造的时候获取。

3. 宏有哪些不可替代的功能

一些常见用法:

  1. 嵌入 __LINE__ 这种预定义宏。
  2. 更灵活地生成函数 / 类的成员。
  3. 结合拼接 ## 的时候。
  4. 还有 #if 这种条件编译的宏。

“如果能不用宏,就不用宏”原则,除了必要场景,宏和任何其他方案对比,都是 0 优势纯劣势。

4. 数组越界检查,性能平均下降 1%,减少 30% 的段错误

https://security.googleblog.com/2024/11/retrofitting-spatial-safety-to-hundreds.html

但是这个还是看场景,不能盲目检查。

5. asan 和 msan 冲突吗

clang 不冲突,gcc 冲突。