💡
原文英文,约1800词,阅读约需7分钟。
📝
内容提要
Rust修复了与C在x86-32和x86-64架构上对齐128位整数的不一致问题,对大多数用户没有影响。修复可能提高运行时性能,但可能增加内存使用。
🎯
关键要点
- Rust修复了与C在x86-32和x86-64架构上对齐128位整数的不一致问题。
- 修复可能提高运行时性能,但可能增加内存使用。
- 用户通常不需要担心这些变化,除非假设i128/u128的对齐或在FFI中使用这些类型时忽略不当的ctypes警告。
- 除了x86-32和x86-64架构外,其他架构没有变化。
- 数据类型的大小和对齐是内存排列的两个固有值。
- Rust的原始类型默认具有最有效的对齐方式。
- Rust的i128和u128类型在对齐上曾与C不一致,导致数据共享问题。
- LLVM在处理128位整数作为函数参数时存在问题。
- 解决这些问题的过程耗时较长,最终在2023年10月完成。
- Rust 1.78及以上版本与GCC和Clang 18及以上版本完全兼容。
- 大多数用户在使用128位整数时不会注意到这些变化,除非进行不当操作。
➡️