[C++] Function

2024. 4. 29. 18:50·C++
목차
  1. Function(함수)
  2. Arguments(인수)
  3. Parameter(매개변수)
  4. 디폴트 매개 변수(default parameter)
  5. 중복 함수(overloading functions)
  6. 인라인 함수(inline function)
  7. 라이브러리 함수(library function)
  8. 함수 원형(fuction prototyping)
  9. 인자의 전달
  10. alias(별명)
  11. strcp() 함수
  12. main() 함수의 parameters

Function(함수)

: 특정한 작업을 수행하는 독립적인 부분

 

Arguments(인수)

함수를 호출할 때, 전달되는 실제 값

 

Parameter(매개변수)

함수 정의에서 나열되는 변수

 

디폴트 매개 변수(default parameter)

인자를 전달하지 않아도 디폴트 값을 대신 넣어주는 기능
  • 디폴트 매개 변수는 뒤에서부터 앞쪽으로만 정의할 수 있다.

 

중복 함수(overloading functions)

같은 이름을 가지는 함수를 여러 개 정의하는 것
  • 매개변수 타입 또는 개수가 달라야 함.
  • 장점
    • 함수 이름의 재사용이 가능
  • 주의할 점
    • 반환형이 다르더라도 중복 안됨.

 

인라인 함수(inline function)

함수 호출을 하지 않고 코드를 복사해서 넣는 것
  • 함수 본체를 호출한 곳에 삽입

 

라이브러리 함수(library function)

컴파일러에서 제공하는 함수
  • rand(): 0부터 RAND_MAX까지의 난수를 생성하는 함수
    • <ctime>
  • srand()

 

함수 원형(fuction prototyping)

컴파일러에게 함수에 대하여 미리 알리는 것
  • 헤더 파일로 만드는 것이 좋다.

 

인자의 전달

call by value

  • Parameter가 생성됨
    • 변수(객체)의 메모리가 따로 할당됨.
  • Argument의 value가 생성된 parameter로 복사됨.

call by pointer

  • pointer 사용
  • call by value 메카니즘 위에서 동작
    • 주소 복사
  • call by reference 같은 효과

call by reference

  • Parameter가 Argument의 alias가 됨.
    • 이름을 하나 더 주는 것
  • 무조건 초기화해야 함.
  • 함수 인자로만 사용
  • 선언문에서만 초기화 가능
    • ex)
      int i = 0; int &r = i; (O)
      int &r; (X) int &r = 10; (X)
  • 호출된 함수 내에서 parameter 값이 변경되면 호출함수의 argument도 동시에 변경이 됨.
  • 복사는 시간이 많이 걸리기 때문에 레퍼런스로 효율성 향상
  • 레퍼런스를 통해 변경을 방지하려면 const를 앞에 붙임.
void sub(const int &p) {
	p  = 0;   
}   

// → 오류
  • 레퍼런스의 경우, 함수 밖에서 const int로 정의된 상수가 함수 매개변수 int &로 들어오면 에러

 

alias(별명)

  • 변수의 alias(별명)를 통해 변수 값을 바꿀 수 있다.
int i;
int *p;

p = &i; // ← 실행문의 &는 주소 생성 연산자
int &r = i; // ← 선언문의 &는 reference 선언

i  = 1;
*p = 2; // ← *p는 i의 alias
r = 3 // ← r은 i의 alias

 

strcp() 함수

문자열을 복사하는 함수
  • NULL 문자(’\0’) 만날 때까지만 복사

 

main() 함수의 parameters

  • argc
    • 명령어 자체와 모든 argument의 개수
  • argv
    • 명령어 및 모든 argument의 문자열을 가리키는 포인터의 배열
    • argc 개수 만큼의 문자열을 가리키는 포인터를 가진다.
      • argv 배열의 크기가 argc
728x90
반응형

'C++' 카테고리의 다른 글

[C++] Expression  (0) 2024.04.30
[C++] Make Utility  (0) 2024.04.30
[C++] Types  (0) 2024.04.29
[C++] Control Structures  (0) 2024.04.29
[C++] Array  (0) 2024.04.29
  1. Function(함수)
  2. Arguments(인수)
  3. Parameter(매개변수)
  4. 디폴트 매개 변수(default parameter)
  5. 중복 함수(overloading functions)
  6. 인라인 함수(inline function)
  7. 라이브러리 함수(library function)
  8. 함수 원형(fuction prototyping)
  9. 인자의 전달
  10. alias(별명)
  11. strcp() 함수
  12. main() 함수의 parameters
'C++' 카테고리의 다른 글
  • [C++] Expression
  • [C++] Make Utility
  • [C++] Types
  • [C++] Control Structures
nueos
nueos
  • nueos
    nueos 공부 기록
    nueos
  • 전체
    오늘
    어제
    • 분류 전체보기 (191)
      • 해커톤 (1)
      • 네이버 BoostCamp (6)
      • LG 유플러스 유레카 SW (3)
        • React (21)
        • TypeScript (2)
        • JavaScript (2)
        • HTML+CSS (5)
        • Spring (7)
        • Java (6)
        • SQL (2)
        • Algorithm (8)
        • CX (6)
        • Git (2)
        • 프로젝트 (2)
        • 스터디 (9)
        • 과제 (8)
        • 특강 (1)
      • React (3)
      • Next (0)
      • Javascript (2)
      • HTML (2)
      • CSS (9)
      • Algorithm (6)
      • Database (0)
      • OS (13)
      • C++ (24)
      • Python (1)
      • jQuery (1)
      • Django (1)
      • Git (1)
      • 개발 지식 (3)
      • 정보 보안 (22)
      • 포렌식 (1)
      • 암호 (2)
      • 기타 (4)
      • 패스트캠퍼스 FE 프로젝트십 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    heap
    제주지역혁신플랫폼지능형서비스사업단
    exhaustive search
    큐
    Queue
    Stack
    제주해커톤
    힙
    디지랩챌린지
    완전 탐색
    디지털혁신
    스택
    기술로바꾸는세상
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
nueos
[C++] Function
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.