use std::os::raw::c_int;
#[link(name="mylib", kind="static")]
extern "C" {
fn twice(n: c_int) -> c_int;
}
fn main() {
let n = 12;
unsafe {
println!("{}の2倍は{}", n, twice(n));
}
}
use std::time::Instant;
fun main() {
i16func();
i64func();
}
fn i16func(){
let mut v:16 = 0;
let start = Instant::now();
for _ in 0..1000 {
for _ in 0..10000 {
v = v + 1;
}
v = v - 10000;
}
let elepse = start.elapsed();
println!("i16={:?}", v);
}
fn i64func() {
let mut v:i64 = 0;
let start = Instant::now();
for _ in 0..1000 {
for _ in 0..10000 {
v = v + 1;
}
v = v- 10000;
}
let elepse = start.elapsed();
println!("i64={:?}", v);
println!("{}ミリ秒", elepse.as_millis());
}
use std::time::Instant;
fn main() {
f32func();
f64func();
}
fn f32func() {
const NDATA:usize = 10000;
let mut a:[f32; NDATA] = [0.0; NDATA];
for i in 0..NDATA {
a[i] = (NDATA - i) as f32;
}
println!("並び替えスタート");
let start = Instant::now();
for i in 0..NDATA{
for j in 0..NDATA {
if a[i] < a[j] {
let tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
let elepse = start.elapsed();
println!("並べ替え終了");
println!("{}ミリ秒", elepse.as_millis());
}
fn f64func() {
const NDATA:usize = 10000;
let mut a:[f64; NDATA] = [0.0; NDATA];
for i in 0..NDATA {
a[i] = (NDATA - i) as f64;
}
let start = Instant::now();
for i in 0..NDATA {
for j in 0..NDATA {
if a[i] < a[j] {
let tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
let elepse = start.elapsed();
println!("並び替え終了");
println!("{}ミリ秒", elepse.as_millis());
}