Lobsters | 📄 原文链接 | 2026-07-16 收录

C 字符串:一个 50 年的错误

来源:longtran2904.substack.com — 2026-07-16

📋 概述

本文直言 C 语言的 null 终止字符串是半个世纪的错误设计。作者追溯了从 PDP-11 时代的 ASCIZ 指令到现代 C 标准的历史,指出 NUL 终止的设计导致了 缓冲区溢出、O(n) 的长度计算、无法安全存储二进制数据、以及无数安全漏洞。作者认为 Pascal 风格的 长度前缀字符串远优于 C 方案,而 C++ 的 std::string 和 Rust 的 &str 正是对这种错误的历史修正。

🔑 核心要点

💡 金句

C strings are a 50-year mistake — null termination has cost billions in security vulnerabilities and developer hours.
← 返回 Lobsters 首页