본문 바로가기
공부/c++

#7 prototype | 프로토타입

by 심심한 뾰 2021. 8. 26.
반응형

prototype은 여러 함수를 만들어서 서로 호출할 때 필요한 개념이다.

함수를 서로 호출할 때, 헷갈리지 않기 위해 prototype이 필요하다.

prototype은 함수들을 코드 맨 위에 작성하는 것이다.

 

다음 코드들을 통해서 더 이해해 보도록 하겠다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
//prototype : 원형, 시제품
 
void first(){
  std::cout << "first" << std::endl;
}
 
void second(){
  std::cout << "second" << std::endl;
}
 
void third(){
  std::cout << "third" << std::endl;
}
 
int main(){
  first();
  second();
  third();
}
cs
출력 결과

이렇게 여러 함수를 가지고 있는 코드가 있다.

출력을 하면, 결과가 제대로 출력된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
//prototype : 원형, 시제품
 
int main(){
  first();
  second();
  third();
}
 
void first(){
  std::cout << "first" << std::endl;
}
 
void second(){
  std::cout << "second" << std::endl;
}
 
void third(){
  std::cout << "third" << std::endl;
}
 
cs

 

출력 결과

위 코드와 순서만 바꾼 코드이지만, 오류가 출력된다.

그 이유는 컴퓨터가 코드를 위에서 부터 읽기 시작하기 때문에 first(), second(), third() 함수가 존재하지 않는 것으로 받아 들이기 때문이다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
//prototype : 원형, 시제품
 
void first();
void second();
void third();
int main(){
  first();
  second();
  third();
}
 
void first(){
  std::cout << "first" << std::endl;
}
 
void second(){
  std::cout << "second" << std::endl;
}
 
void third(){
  std::cout << "third" << std::endl;
}
cs
출력 결과

따라서 코드의 위에 함수의 원형들을 선언한다면, 오류가 발생되지 않고 정상적으로 출력된다.

이렇게 위에 함수의 원형들을 선언하는 것을 prototype이라고 한다.

여러 가지 함수를 포함하는 복잡한 코드를 작성할 때, 매우 필요한 개념이다.

 

또한, 함수에 매개변수가 포함돼 있을 경우, 변수의 타입만 적어주면 된다.

예를 들어, 

void example(int a, int b)의 프로토타입은 void example(int, int)로 적어주면 된다.

 

 

출처(source) - 유튜브 두들낙서님

https://www.youtube.com/c/%EB%91%90%EB%93%A4%EB%82%99%EC%84%9C

 

두들낙서

C/C++ 강좌를 올리고 있고 다른 컨텐츠는 할 수도 있고 안 할 수도 있는 채널. ▶ 두들낙서 지식공유 서버 참가하기: https://discord.gg/y4SXcjU

www.youtube.com

c++ 최고의 강좌,,

반응형