败犬日报 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. 宏有哪些不可替代的功能
一些常见用法:
- 嵌入
__LINE__
这种预定义宏。 - 更灵活地生成函数 / 类的成员。
- 结合拼接
##
的时候。 - 还有
#if
这种条件编译的宏。
“如果能不用宏,就不用宏”原则,除了必要场景,宏和任何其他方案对比,都是 0 优势纯劣势。
4. 数组越界检查,性能平均下降 1%,减少 30% 的段错误
https://security.googleblog.com/2024/11/retrofitting-spatial-safety-to-hundreds.html
但是这个还是看场景,不能盲目检查。
5. asan 和 msan 冲突吗
clang 不冲突,gcc 冲突。