rust primitive types stack

wangki·2025년 6월 21일
0

Rust

목록 보기
35/56
post-thumbnail

개요

rust에서 primitive types, 내장 타입이 존재한다. 이 타입들은 Copy 트레잇을 기본적으로 구현하기때문에 소유권이 이동되지 않고, 값 복사가 발생한다.
미리 할당된 스택 메모리에서 값을 읽어 쓰는 행위를 하기 때문에 속도가 상당히 빠르다는 장점이 있다.
스택에서 내장 타입들이 어떻게 동작하는지 정확히 정리를 해보겠다.

내용

기본적으로 rust의 내장 타입으로는, 정수, 부동 소수, 불리언, 문자, 포인터 등이 있다.
간단히 i32타입의 주솟값을 출력해보겠다.

fn main() {
    let a = 10;
    let b = a;
    
    println!("a address: {:p}", &a);
    println!("b address: {:p}", &b);
}

결과로는

주솟값이 4바이트 차이 나는 것을 확인할 수 있다.
또한 값이 모두 출력되는 것으로 ab에 대입했지만 소유권이 move되지 않고 copy가 되는 것을 확인할 수 있다.

결론

스택은 메모리가 os에 의해 미리 할당이 되기 때문에 스택 포인터만 옮기면 되므로 속도가 매우 빠르다.
또한 rust에서 소유권이 이동하지 않고 복사가 일어나기 때문에 소유권 문제에 대해서 깊게 생각할 필요가 없다. 그러나 타입이 고정되지 않거나, 동적으로 사이즈가 변할 수 있는 경우에는 힙 메모리를 사용해야 한다.
정확히 스택이 어떻게 동작하는지에 대해서 이해를 한 뒤 다시 러스트의 기본 내장 타입들에 대해서 생각하니 새로운 것 같다. 다음엔 힙에 할당되는 타입들에 대해서 자세히 알아볼 예정이다.

0개의 댓글