V2EX  ›  英汉词典

Strict Aliasing

定义 Definition

strict aliasing(严格别名规则):编译器优化时的一条假设/规则,指不同类型的指针通常不会指向同一块内存(即不会“别名”同一对象),除少数例外(如 char* 可别名任何对象等)。在 C/C++ 中违反该规则往往会导致未定义行为,从而出现看似“莫名其妙”的错误,尤其在高优化级别下更明显。

发音 Pronunciation (IPA)

/strɪkt ˈeɪliəsɪŋ/

例句 Examples

Strict aliasing can make your program faster, but it can also hide bugs.
严格别名规则可以让程序更快,但也可能把 bug 隐藏起来。

When the optimizer assumes strict aliasing, reinterpreting a float* as an int* may produce undefined behavior and break only in release builds.
当优化器基于严格别名规则进行假设时,把 float* 重新解释为 int* 可能触发未定义行为,并且可能只在发布版(高优化)中出问题。

词源 Etymology

strict 意为“严格的”,来自拉丁语 strictus(拉紧、严格);aliasing 来自 alias(化名/别名),源于拉丁语短语 alias(“在别的情况下/以别的名称”)。在计算机领域里,aliasing 指“两个不同的名字(指针/引用)指向同一对象/内存位置”。合在一起,strict aliasing 就是“对内存别名关系的严格假设/限制”。

相关词 Related Words

文学与著作 Literary Works

  • *ISO/IEC 9899 (C Standard)*:以“effective type(有效类型)”等规则体系为基础,构成严格别名相关语义的规范来源。
  • *ISO/IEC 14882 (C++ Standard)*:通过对象模型与类型别名规则描述相关约束(C++ 的表述方式与 C 有差异但高度相关)。
  • GCC Manual / GCC Documentation:专门解释 -fstrict-aliasing、优化假设以及常见踩坑模式。
  • Clang/LLVM Documentation:涉及类型别名分析(type-based alias analysis, TBAA)与优化假设的说明。
  • C Traps and Pitfalls(Andrew Koenig):虽不总以该术语为主线,但讨论了与未定义行为/类型误用相关的典型陷阱。
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   838 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 23:33 · PVG 07:33 · LAX 15:33 · JFK 18:33
♥ Do have faith in what you're doing.