aaa 7

Programming Learning Diary

protortpe

페이지 정보

작성일 19-12-05 09:58

본문

prototype:원형 , 시제품  


c++에서는 먼저 작성되어 있는 코드부터 차례로 읽기 시작한다. 그래서 작성된 함수라해도 컴파일 시점에서 없는 함수이면 에러가 발생한다
이것을 막기 위해 나온 개념이 prototype이다.




예를 들어보겠다.

-다음과 같은 함수를 실행할 때에는 main을 읽어 들이는데 drawSquare(); 함수가 컴파일 순서상으로 읽히지가 않아서 오류를 낸다.



#include <iostream>

int main() {

drawSquare();  //현재 정의되지 않은 함수를 먼저 불러오게 되어 에러발생

}



// 걷기

void walk(int distance) {

printf("%dcm를 걸었습니다.\n", distance);

}

//돌기

void rotate(int angle) {

printf("%d도 회전했습니다\n", angle);

}


void drawSquare() {

for (int i = 1; i < 4; i++) {

walk(10);

rotate(90);

}

}




=================================================================================================================================

다음은 프로토 타입을 쓴 예제이다.


//프로토 타입은 변수명이 없어도 되며 인자를 받는 타입은 사용할 함수에 맞게 정의해줘야 한다.


#include <iostream>


//다음과 같이 프로토 타입을 정의해주면 앞으로 컴파일 도중 순서에 따른 에러가 발생하지 않는다

void walk(int distance);  

void rotate(int); 

void drawSquare();


int main() {

drawSquare();

}

// 걷기

void walk(int distance) {

printf("%dcm를 걸었습니다.\n", distance);

}

//돌기

void rotate(int angle) {

printf("%d도 회전했습니다\n", angle);

}


void drawSquare() {

for (int i = 1; i < 4; i++) {

walk(10);

rotate(90);

}

}