Skip to content

G.FMT.01 extern 外部函数应显式指定 ABI 标识

【级别】 要求

【描述】

当使用 extern 指定外部函数时,应显式指定 ABI 标识,否则默认为 C-ABI 。 显式指定 ABI 标识是 Rust 语言的一种约定俗成,有利于代码健壮性。

【反例】

Rust
use std::os::raw::c_char;
// 不符合:不要省略 C-ABI 指定
extern {
  fn strlen(s: *const c_char) -> i32; 
  }

【正例】

Rust
use std::os::raw::c_char;
// 符合
extern "C" {
  fn strlen(s: *const c_char) -> i32; }

// 符合
extern "Rust" {  
  type MyType;
  fn f(&self) -> usize;
}