前言:
现时看官们对“r语言c调用”可能比较关切,看官们都需要剖析一些“r语言c调用”的相关文章。那么小编同时在网摘上网罗了一些对于“r语言c调用””的相关资讯,希望看官们能喜欢,小伙伴们快快来了解一下吧!// mystrlen.cunsigned int mystrlen(char *str) { unsigned int c; for (c=0; *str != '\0'; c++, *str++); return c; }
// c_from_rust/build.rsfn main() { cc::Build::new() .file("mystrlen.c") .static_flag(true) .compile("mystrlen");}
// c_from_rust/src/main.rsuse std::os::raw::{c_char, c_uint};use std::ffi::CString; extern "C" { fn mystrlen(str: *const c_char) -> c_uint; }fn safe_mystrlen(str: &str) -> Option<u32> { let c_string = match CString::new(str) { Ok(c) => c, Err(_) => return None }; unsafe { Some(mystrlen(c_string.as_ptr())) } }fn main() { let c_string = CString::new("C From Rust").expect("failed"); let count = unsafe { mystrlen(c_string.as_ptr()) }; println!("c_string's length is {}", count); println!("c_string's length is {:?}", safe_mystrlen("C From Rust"));}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #r语言c调用