77monkey 개발 일지
close
프로필 배경
프로필 로고

77monkey 개발 일지

  • 분류 전체보기 (114) N
    • 개발 (94) N
      • C, C++ (29)
      • python (16)
      • Rust (14)
      • Git, Github (9)
      • Linux (14) N
      • android (4)
    • 투자 (6)
    • 리뷰 (11)
  • 홈

[C/C++] inline 함수

지난 시간에 함수에 대해서 배웠습니다. 이번에는 inline 함수에 대해서 배워보도록 하겠습니다. inline 함수라는 이름에서 알 수 있듯이 함수를 in + line 하겠다는 느낌이 오지 않으신가요? 그럼 inline 함수에 대해서 알아보도록 하겠습니다.  inline 함수inline 함수는 함수 호출의 오버헤드를 줄이기 위해 컴파일러에 의해 해당 함수의 코드를 호출하는 곳에 직접 삽입되는 함수입니다. 호출되는 함수의 코드가 복사되어서 함수를 호출하는 곳으로 복사가 된다고 생각하시면 됩니다. 이렇게 되면 함수를 호출하기 위해서 시스템 내부적으로 동작되는 부분이 사라지고 바로 코드가 실행되기 때문에 실행 속도가 향상됩니다.  inline 함수 예시지난 포스팅에서 선언한 예시를 가져왔습니다. 다른 점이 하..

  • format_list_bulleted 개발/C, C++
  • · 2024. 5. 2.
  • textsms

[C/C++] 함수(function)

지금까지는 main 함수에서 모든 코드를 작성하여 코드를 작성했습니다. 이제는 main 함수가 아닌 다른 함수들을 만들어 보려고 합니다. main 함수를 통해서 대략적인 구조는 아셨을 텐데 조금 더 구체적으로 알아보도록 하겠습니다.   함수 정의함수를 정의하는 방법은 간단합니다. 먼저 해당 함수가 reutrn 하는 타입을 작성합니다. 그리고 해당 함수에서 원하는 동작을 함수 이름으로 작성합니다. 마지막으로 해당 함수를 부를 때 필요한 매개변수를 작성합니다. 그리고 중괄호를 작성해야 함수의 기본 뼈대가 완성됩니다.ruturn_타입 함수_이름(함수_매개변수) { //코드} 함수 정의 예시간단하게 정수 2개를 입력받아 더하는 함수를 만들어 봅시다. 가장 먼저 해당 함수의 이름을 무엇으로 할까 고민을 해봐야할 ..

  • format_list_bulleted 개발/C, C++
  • · 2024. 5. 2.
  • textsms

[Rust] 쉐도잉(shadowing)

Rust 쉐도잉(Shadowing)에 대해서 알아보도록 하겠습니다. 쉐도잉(Shadowing)이란? 쉐도잉(Shadowing)은 동일한 이름의 변수를 새로운 값을 가진 새로운 변수로 다시 정의하는 것을 의미합니다. 새로운 변수가 이전 변수를 가리게 되어서 쉐도잉(Shadowing)이라고 합니다. 코드를 통해서 좀 더 알아볼까요? 쉐도잉(Shadowing) 예시 아래 코드를 보시면, let을 통해서 x를 선언하게 됩니다. x는 bool 타입으로 선언이 되었고, 이를 출력하면 x: true가 출력되게 됩니다. 그리고 다시 let을 통해서 x를 &str 타입으로 선언해 줍니다. 그러면 x: monkey가 출력되게 됩니다. 좀 더 설명을 해보자면, true 값을 가진 x는 monkey 값을 가진 x가 선언이 되..

  • format_list_bulleted 개발/Rust
  • · 2024. 4. 9.
  • textsms

[Rust] 포인터 타입 => 레퍼런스/박스/원시 포인터

Rust에서 포인터 타입은 크게 3가지로 나뉩니다. Rust에서 포인터 타입은 C/C++에서처럼 포인터가 null이 되거나 중복 해제 등과 같은 일이 발생하지 않습니다. 그렇기 때문에 사람이기 때문에 하는 실수를 사전에 방지할 수 있습니다. 단, unsafe 블록을 사용하는 순간 안전성은 개발자에게 넘어오게 됩니다. 물론 보통의 경우에는 unsafe를 사용하지 않겠지만 말입니다. 레퍼런스(&) 레퍼런스는 C/C++에서의 포인터와 유사합니다. 그렇기 때문에 &var를 쓰고 *var를 함으로써 var이 가지고 있는 값을 접근할 수 있습니다. 이러한 레퍼런스는 2가지로 나뉩니다. 불변 참조(&T)와 가변 참조(&mut T)입니다. 불변 참조는 데이터를 읽을 수는 있지만 수정할 수 없고, 가변 참조는 데이터를 ..

  • format_list_bulleted 개발/Rust
  • · 2023. 10. 9.
  • textsms

[Rust] 슬라이스 vs 슬라이스 레퍼런스

슬라이스는 벡터(Vector), 문자열(String), 배열(Array) 등과 같은 시퀀스 데이터를 다루는 도구로써, 데이터의 일부분을 안전하게 조작하고 공유할 수 있게 해 줍니다. 슬라이스는 무엇인지 알아보도록 합시다. 추가로 슬라이스 레퍼런스에 대해서도 알아보도록 합시다. 슬라이스 슬라이스는 데이터의 일부분에 대한 참조로써, 데이터의 복사본을 생성하지 않고 해당 데이터를 조작할 수 있게 합니다. 슬라이스는 시작 인덱스와 끝 인덱스를 사용하여 데이터의 일부분을 지정하며, 다음과 같은 형식으로 선언됩니다. [T] 슬라이스 생성과 사용 슬라이스 생성과 사용 방법은 아래 코드를 참고하시길 바랍니다. 보시다시피 벡터, 문자열, 배열 등을 선언한 뒤, 시작 인덱스와 끝 인덱스를 지정해서 슬라이스를 만듭니다. 그..

  • format_list_bulleted 개발/Rust
  • · 2023. 10. 8.
  • textsms

[Rust] 벡터(Vector)

Rust 배열에 대해서 배웠었는데, 기억하시나요? 혹시 기억이 안 나신다면 아래 링크에서 보고 오시는 것을 추천드립니다. [Rust] 배열(array) Rust에서 배열은 C/C++에서 보았던 배열과 비슷합니다. 하지만 매번 그랬듯이 다른 점도 있기 때문에 잘 비교하면서 알아보도록 합시다. 배열(array) Rust에서 배열은 고정된 크기의 요소를 저장하는 77monkey.tistory.com 배열에 이어서 벡터에 대해서도 알아보도록 합시다. 벡터(Vector) Rust에서 벡터는 std::vec::Vec 모듈을 통해서 사용할 수 있는 동적 배열입니다. 그렇기 때문에 메모리를 할당하고 해제할 수 있으며 요소를 추가하거나 제거할 수 있습니다. 이를 통해서 크기를 동적으로 조절할 수 있습니다. 배열과는 다르..

  • format_list_bulleted 개발/Rust
  • · 2023. 10. 5.
  • textsms
  • navigate_before
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • ···
  • 19
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (114) N
    • 개발 (94) N
      • C, C++ (29)
      • python (16)
      • Rust (14)
      • Git, Github (9)
      • Linux (14) N
      • android (4)
    • 투자 (6)
    • 리뷰 (11)
최근 글
인기 글
최근 댓글
태그
  • #배열
  • #파이썬
  • #C언어
  • #rust
  • #C
  • #Rust 언어
  • #러스트
  • #Python
  • #C++
  • #Git
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바