Lobsters | 📄 原文链接 | 2026-10-14 收录

你的 C 不是标准 C

来源:sebsite.pw — 2026-10-12

📋 概述

作者整理了一份自认不完整的清单,罗列标准里的 C 与实际世界里的 C(gcc/clang 配 glibc/musl)之间的不兼容,开头引用 Dennis Ritchie 的话:委员会造出了一门没人能用也不会有人用的虚幻语言。清单包括:asm 在 gcc/clang 里默认被当作扩展关键字,而标准 C 里它是合法的非保留标识符,所以合规代码可能编译不过,标准也没像 C++ 那样把它列为保留字;标准要求 FLT_ROUNDS 反映运行时的浮点舍入模式,gcc 却永远定义为 1;C99 起的五个标准 pragma 在 gcc 里 27 年过去仍是空操作;glibc 的 initstate 出错时不按 POSIX 要求返回 NULL;clang 把函数返回类型上的限定符当作有意义,与标准相抵触;musl 提供的 va_start 定义过时,导致 C23 允许省略第二参数的新用法在 musl 上不能用。

🔑 核心要点

💡 金句

委员会造出了一门没有人能用、也不会有人去用的虚幻语言。
← 返回 Lobsters 首页