본문 바로가기
* Language/C

[C언어] 확실히 알고가자 프로토타입(Prototype)이란?(개념잡기)

by codinguser 2021. 1. 6.

[C언어] 확실히 알고가자 프로토타입(Prototype)이란?(개념잡기)
프로토타입 개념?

 

 

C언어를 공부하다 보면

코딩을 하는 능력과는 별개로 단어적인 개념으로 인해 쉽게 지치기 마련이다.

 

단어를 사전적 그대로 받아들이기보다 어떠한 이미지로 기억하는 것이

훨씬 더 효율적이다.

 

 

 

 

 

 

 

 

 

포로토타입(Prototype)이란 무엇일까?


Pro의 접두사로 "~~ 이전에"라는 의미가 가진 무엇인가 라는 생각이 든다.

 

Pro(~이전에) + to(~에) + type(타입, 유형)

: ~하기 이전에 어떠한 타입으로 무언가를 해놓은 것.

 

위의 개념적 이미지를 가지고 다음 사례를 읽어보자

 

 

1. 책을 읽기 이전에 어떠한 책인지 대략적으로 파악할 수 있는 어떠한 타입?

: 목차

 

2. 본격적인 출시 이전에 어떠한 기능을 검증하기 위해 제작하는 제품(타입)?

: 시제품

 

 

 

핵심 이미지 : ~을 하기 이전에 미리 확인하는 이미지

 

 

 

 

 

 

 

 

 

 

C언어에서 프로토타입(Prototype)이란?


: 미리 나올 함수를 목차처럼 보여주는 것

 

 

 

 

 

case1)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
 
 
int add(int a, int b){
    return a + b;
}
 
int main()
{
    int x=1;
    int y=2;
    int sum;
 
    sum = add(x,y);
    printf("sum의 결과는? %d ", sum);
}
 
 
cs

 

: main() 위에 add()라는 함수가 지정되어 있다. 이럴 땐 굳이 선언해줄 필요가 없다.

왜? main()이 실행이 가장 먼저 되고 위에서 아래로 바로 실행이 되니까 물론 써도 되긴 하지만, 의미가 없다.

 

 

 

 

 

 

 

case 2)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
 
 
int sum(intint); // Prototype
 
int main()
{
    int x=1;
    int y=2;
    int sum;
 
    sum = add(x,y);
    printf("sum의 결과는? %d ", sum);
}
 
int add(int a, int b){
    return a + b;
}
 
cs

 

: 위에서 int sum(int, int); 부분을 선언해주었다. 이 부분이 프로토타입이다.

이 프로그램 전체를 총괄해서 어떤 구조인지 쉽게 알 수 있다.

 

 

아래의 사례로 바로 넘어가자.

 

 

 

 

 

 

case 3)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <stdlib.h>
 
 
int sum(intint); // 2020. 01. 02 By Kim
int sub(intint); // 2020. 01. 03 By Hyun
int multi(intint); // 2020. 01. 04 By ~~
int divide(intint); // 2020. 01. 05 By ~~
 
int main()
{
    
    
    /*
    
    main() 본문
    
    
    */
}
 
int add(int a, int b){
    return a + b;
}
 
int sub(){
 
}
 
int multi(){
 
}
 
int divide(){
 
}
 
 
cs

 

: 개발이라는 건 혼자 하는 게 아니라 다 같이 하는 영역이라 생각한다.

누가 어떤 것을 작성했는지 한눈에 보인다.

 

또한 프로그램 전체의 큰 틀을 알 수 있다. 훨씬 보기가 좋다.

개인적으로 이런 방식을 더 선호한다.

 

 

 

결과는 똑같게 출력이 됩니다. 그냥 취향의 차이이니까요.

 

 

이미 이 글을 읽고 났으면

프로토타입이 어떤 이미지인지 머릿속에 남아 있을 것입니다.

 

비단 C언어를 공부하시면서 나온 프로토타입 개념뿐만 아니라 어느 언어에서 프로토타입 개념을 만나시든 이 개념을 가지고 접근하시면 이해하기가 쉬울 것입니다.

 

 

 

 

 

 

 

 

 

 

 

 

댓글