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(int, int); // 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(int, int); // 2020. 01. 02 By Kim
int sub(int, int); // 2020. 01. 03 By Hyun
int multi(int, int); // 2020. 01. 04 By ~~
int divide(int, int); // 2020. 01. 05 By ~~
int main()
{
/*
main() 본문
*/
}
int add(int a, int b){
return a + b;
}
int sub(){
}
int multi(){
}
int divide(){
}
|
cs |
: 개발이라는 건 혼자 하는 게 아니라 다 같이 하는 영역이라 생각한다.
누가 어떤 것을 작성했는지 한눈에 보인다.
또한 프로그램 전체의 큰 틀을 알 수 있다. 훨씬 보기가 좋다.
개인적으로 이런 방식을 더 선호한다.
결과는 똑같게 출력이 됩니다. 그냥 취향의 차이이니까요.
이미 이 글을 읽고 났으면
프로토타입이 어떤 이미지인지 머릿속에 남아 있을 것입니다.
비단 C언어를 공부하시면서 나온 프로토타입 개념뿐만 아니라 어느 언어에서 프로토타입 개념을 만나시든 이 개념을 가지고 접근하시면 이해하기가 쉬울 것입니다.
'* Language > C' 카테고리의 다른 글
[C언어] 포인터 개념 아직도 햇갈리시나요? 코드로 봐야 100% 이해 할 수 있습니다. (0) | 2021.09.04 |
---|---|
[C언어] 사용자 입력 여러개 받기(반복문) (0) | 2021.08.30 |
[C언어] 헷갈리는 증감 연산자(++a, a++) 차이 한 번에 이해하기 (0) | 2021.08.17 |
[C언어] C언어를 배워야하는 이유(주관적인생각) (0) | 2020.10.17 |
댓글