为了实现重写 Rust 计划,这次小汀需要将 C 函数声明改写成 Rust 的格式。举例来说,对于 C 函数声明 int sum(int a,int b)
,Rust 格式下是 fn sum(a:i32,b:i32)->i32
。
Rust 的函数以 fn
关键字开始,紧接着函数名和一对小括号,如 fn main()
。小括号内可以包括若干个函数参数,每个参数需要写成 name:type
的格式,以逗号分隔,其中 name
为参数名,type
为类型名。函数的返回值在最后以一个箭头符号和一个类型来标识,形如 -> type
。
因此,一个叫做 pow
,传入两个参数:单精浮点型 base
和整型 n
,返回双精浮点型的函数就在 Rust 中写作fn pow(base:f32,n:i32)->f64
。为了让你更好理解,该函数的 C 语言格式为 double pow(float base,int n)
。
本题中涉及到的 C 语言变量类型仅包括 int
float
double
三种,对应的 Rust 类型名为 i32
f32
f64
,这三种变量类型都可以做函数返回值。
本题中也可能出现无返回值的函数。在 C 语言中,这种函数返回值是 void
,而在 Rust 中,则只要不在结尾添加 ->type
即可表示无返回值,如 C 语言函数 void main()
的 Rust 形式为 fn main()
。
本题将会输入一个 C 语言函数声明,要求你将其转换为一个语义相同(返回值类型相同、函数名相同、各个参数名和对应的类型和参数顺序相同)的 Rust 函数声明,具体格式要求见下。