---
title: "Rust 1.99 發布：穩定 C 可變參數函數與裸指標佈局查詢"
url: https://sammy.hk/rust-1-99-%e7%99%bc%e5%b8%83%ef%bc%9a%e7%a9%a9%e5%ae%9a-c-%e5%8f%af%e8%ae%8a%e5%8f%83%e6%95%b8%e5%87%bd%e6%95%b8%e8%88%87%e8%a3%b8%e6%8c%87%e6%a8%99%e4%bd%88%e5%b1%80%e6%9f%a5%e8%a9%a2/
author: Ethan
published: 2026-10-02T13:19:00+08:00
modified: 2026-10-02T09:05:17+08:00
description: "Rust 1.99 發布：穩定 C 可變參數函數與裸指標檢查 Rust 團隊於 2026 年 10 月 1 日宣佈 Rust 1.99.0 發布。已安裝 rustup 的使用者可以 rustup update stable 取得新版本。[1] C 可變參數函數 官方指出，1.99.0 穩定了以「C」及「C-unwind…"
categories: ["開放源碼"]
tags: [FFI, Rust, Rust 1.99, VaList, "可變參數", "標準庫"]
source: https://sammy.hk
---
![](https://sammy.hk/wp-content/uploads/2026/10/rust-1.99-release-og.jpg)# Rust 1.99 發布：穩定 C 可變參數函數與裸指標檢查

Rust 團隊於 2026 年 10 月 1 日宣佈 Rust 1.99.0 發布。已安裝 rustup 的使用者可以 `rustup update stable` 取得新版本。\[1\]

## C 可變參數函數

官方指出，1.99.0 穩定了以「C」及「C-unwind」ABI 定義 C ABI 可變參數函數的能力。這類函數使用可變參數列表（`...`），可接受任意數目的引數。\[1\]

官方說明，Rust 過去已能呼叫外部定義的可變參數函數（例如 `libc::printf`）；由 Rust 1.99 起，這些函數可以直接用 Rust 定義。`...` 的類型是 `VaList`，在各目標平台上與 C 的 `va_list` 類型 ABI 相容；可從 `VaList` 讀取那些類型，由 `VaArgSafe` trait 規範。\[1\]

此外，此版本也穩定支持以非「C」ABI 定義裸（naked）可變參數函數，函數必須以內聯組裝彈開。\[1\]

## 由裸指標取得佈局資訊

官方指出，此版本釐清了從裸指標取得大小與對齊的安全要求，涵蓋 `Sized` 與非 `Sized` 類型，做法是穩定三個函數：`Layout::for_value_raw`、`mem::size_of_val_raw` 與 `mem::align_of_val_raw`。\[1\]

## Box::leak 的新建議

官方表示，Rust 1.99 沒有改變語言語義，但更新了 `Box::leak` 的文件，建議不要採用其後再把記憶體釋放的模式。官方解釋，這類程式碼與現時及未來可能的編譯器優化有不良互動，阻礙著自記憶體配置器即將穩定，問題將其明顯；官方建議改用 `Box::into_non_null` 或 `Box::into_raw`。相同建議也適用於標準庫中其他 `leak` 函數。\[1\]

## 其他穩定項目

官方列出 1.99.0 新穩定的部分 API，包括 `Box`、`&Box` 與 `&mut Box` 的 `IntoIterator` 實作、`VecDeque::retain_back`、`core::ffi::VaList`、`Box::into_non_null` 與 `Box::from_non_null`、`Vec::into_parts` 與 `Vec::from_parts`、`core::mem::size_of_val_raw`、`core::mem::align_of_val_raw`、`core::alloc::Layout::for_value_raw`、`String::from_utf8_lossy_owned`、`string::FromUtf8Error::into_utf8_lossy`、`StepBy<i></i>` 的 `FusedIterator`，以及 `std::fs::set_times` 與 `std::fs::set_times_nofollow`。\[1\]

官方指出，Rust、Cargo 與 Clippy 的完整改動清單可於各發布頁面查閱，並感謝所有參與 1.99.0 的貢獻者。\[1\]\[2\]

## 參考資料

\[1\] [Rust 官方部落格 — Announcing Rust 1.99.0（2026 年 10 月 1 日）](https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/)

\[2\] [Rust 官方文件 — 1.99.0 詳細發布聲明](https://doc.rust-lang.org/stable/releases.html)

### 相關文章：

1. [GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中](https://sammy.hk/github-%e7%94%a8-ai-%e4%bb%a3%e7%90%86%e6%8a%8a-copilot-%e5%9f%b7%e8%a1%8c%e6%99%82%e9%87%8d%e5%af%ab%e7%82%ba-rust%ef%bc%9a832378-%e8%a1%8c%e8%88%87-96-%e6%8f%90%e7%a4%ba%e5%bf%ab%e5%8f%96%e5%91%bd/ "GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中")
2. [Rust 官方警告：針對知名開發者的目標攻擊正在進行](https://sammy.hk/rust-%e5%ae%98%e6%96%b9%e8%ad%a6%e5%91%8a%ef%bc%9a%e9%87%9d%e5%b0%8d%e7%9f%a5%e5%90%8d%e9%96%8b%e7%99%bc%e8%80%85%e7%9a%84%e7%9b%ae%e6%a8%99%e6%94%bb%e6%93%8a%e6%ad%a3%e5%9c%a8%e9%80%b2%e8%a1%8c/ "Rust 官方警告：針對知名開發者的目標攻擊正在進行")
3. [GNOME 生態新日曆程式「Era」以 Rust 寫成，首個 beta 上架 Flathub](https://sammy.hk/gnome-%e7%94%9f%e6%85%8b%e6%96%b0%e6%97%a5%e6%9b%86%e7%a8%8b%e5%bc%8f%e3%80%8cera%e3%80%8d%e4%bb%a5-rust-%e5%af%ab%e6%88%90%ef%bc%8c%e9%a6%96%e5%80%8b-beta-%e4%b8%8a%e6%9e%b6-flathub/ "GNOME 生態新日曆程式「Era」以 Rust 寫成，首個 beta 上架 Flathub")
4. [NVIDIA 推出 CUDA Rust：兩條路線用 Rust 寫 GPU 核心](https://sammy.hk/nvidia-%e6%8e%a8%e5%87%ba-cuda-rust%ef%bc%9a%e5%85%a9%e6%a2%9d%e8%b7%af%e7%b7%9a%e7%94%a8-rust-%e5%af%ab-gpu-%e6%a0%b8%e5%bf%83/ "NVIDIA 推出 CUDA Rust：兩條路線用 Rust 寫 GPU 核心")
