프로그래밍과 잡담

다른 언어간 문자열 배열 은 쓰지말아야 겠다. 본문

프로그래밍

다른 언어간 문자열 배열 은 쓰지말아야 겠다.

크레온 2020. 6. 26. 21:46

C#에서 Rust 에서 만든 메소드를 호출 하는데

예를 들어 아래와 같은걸 호출한다고 치자.

 

// 문자열 배열을 받아서 문자열 배열을 반환하는 함수임. C#으로 따지면 string[] 이거임. 

// 근데 이걸 반환하기가 넘 어려움.

fn foo(bar: &[*const c_char] ) -> &[*const c_char] 

 

문제는 다른 언어에서 이걸 호출 하면 졸라 어렵다는거다.

 

왜냐하면 문자열 배열이란게 C언어로 치면 char** 이 거랑 비슷하다. 그러다보니 서로 통신하기가 아주 지랄맞아.

 

이건 Go 도 마찮가지다. 단순 문자열은 잘 가지만 문자열 배열이 들어가는 순간 지랄이 나는거야.

 

그냥 때려치우고 하나의 문자열로 만들어서 보낼려고 한다.  그리고 처리하는 쪽도 받은걸 잘라서 처리한 다음에 다시 하나로 합친 다음에 반환하는 식으로 해야 할거 같다.

 

그러니까 이런건 거지.

fn foo(bar: *const c_char ) -> *const c_char  

 

괜히 문자열 배열 처리한답시고 지랄 할 바에는 그냥 이게 빠르겠어..

반응형
Comments