책 내용 질문하기
섹션8 C언어의 함수편 사용자 정의 함수
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
88
조회수
353
작성일
2020-06-27
작성자
탈퇴*원
첨부파일

예제 1번

#include<stdio.h>

void func(int i, int j);

main()

{

int a=3, b=12;

func(a, b);

printf("%d, %d\n", a, b);

}

void func(i, j)

int i, j;

{

i*=3;

j/=3;

printf("%d, %d\n", i, j);

}

이대로 DEV C++ 에서 컴파일 시키면

행    열    메시지

9     11    [Error] variable of field 'func' declared void

9     11    [Error] 'i' was not declared in this scope

9     14    [Error] 'j' was not declared in this scope

11    1     [Error] expected unqualified-id before '{' token

이렇게 나와서 출력 확인이 안되요

89 페이지 예제 2도 역시 예제 그대로 컴파일 했을때

행   열    메시지

2     5     [Error] expected constructor, destructor, or type conversion before '(' tocken

             In function 'int main()':

6     14   [Error] 'func' was not declared in this scope

             At global scope:

9     5     [Error] expected constructor, destructor, or type conversion before '(' tocken

11    1     [Error] expected unqualified-id before '{' token

이라고 나오고 컴파일이 안됩니다

그래서 비슷한 유형으로 101페이지 문제6(산기 18년 10월)를 컴파일 해보면 에러 없이 컴파일이 완료됩니다

그래서 좀 혼란이 오는데 책의 예제가 잘못된건지 아니면 DEV C++ 프로그램 상의 문제인지 그도 아니면 제 컴퓨터에서만 문제인건지 뭐가 뭔지 모르겠습니다

왜 에러가 나오는지 좀 알려주세요

 

답변
2020-06-29 11:01:49

안녕하세요 길벗수험서 운영팀입니다.

 

컴파일러 종류의 문제로 보입니다.

함수 선언 밖에서 변수를 선언하는 프로토타입 방식( 88, 89쪽의 예제1, 예제2)의 경우 이를 허용하지 않는 컴파일러들이 존재합니다.

(*프로토타입 : 사용자정의함수의 구체적인 내용없는 사전 선언)

 

위와 같은 사용자정의함수 선언 방식이 코드로 나오는 경우 혼동하지 않으실 정도만 알아두시면 되는 내용이며, 해당 코드를 직접 수행해보고 싶으시다면 visual studio community를 사용해보시기 바랍니다.

교재 내용 검수 시 코드 검수는 visual studio community 2019를 사용하였으므로 해당 프로그램을 사용하면 모든 코드의 정상적인 컴파일이 가능합니다.

 

예제1과 예제2가 정상적으로 빌드된 이미지를 첨부하니 확인해보시기 바랍니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-06-29 11:01:49

    안녕하세요 길벗수험서 운영팀입니다.

     

    컴파일러 종류의 문제로 보입니다.

    함수 선언 밖에서 변수를 선언하는 프로토타입 방식( 88, 89쪽의 예제1, 예제2)의 경우 이를 허용하지 않는 컴파일러들이 존재합니다.

    (*프로토타입 : 사용자정의함수의 구체적인 내용없는 사전 선언)

     

    위와 같은 사용자정의함수 선언 방식이 코드로 나오는 경우 혼동하지 않으실 정도만 알아두시면 되는 내용이며, 해당 코드를 직접 수행해보고 싶으시다면 visual studio community를 사용해보시기 바랍니다.

    교재 내용 검수 시 코드 검수는 visual studio community 2019를 사용하였으므로 해당 프로그램을 사용하면 모든 코드의 정상적인 컴파일이 가능합니다.

     

    예제1과 예제2가 정상적으로 빌드된 이미지를 첨부하니 확인해보시기 바랍니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.