책 내용 질문하기
2019 시나공 정보처리기사 실기. 사용자 정의함수 질문있습니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
88,89,90,91
조회수
321
작성일
2019-11-11
작성자
탈퇴*원
첨부파일

#include <stdio.h>

func(i, j);

main()

{

int a = 3, b = 12;

a = 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);

return i;

}

 

 

이거를

 

#include <stdio.h>

 

void func(int i, int j)

{

i*= 3;

j /= 3;

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

return i;

}

main()

{

int a = 3, b = 12;

a = func (a, b);

 

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

}

이렇게 바꿔야 오류가 안나는데 이유 좀 알 수 있을까요?

다른 문제도 다 똑같습니다.

 

인터넷 찾아보면 다른 사람들은 사용자 정의 함수를 main 함수 이전에 놓고 쓰던데, 문제에 오류가 있는 건가요?

답변
2019-11-13 10:28:21

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

 

C++ 컴파일러를 사용하지 않으셨는지 확인해보시기 바랍니다.

 

해당 문제들은 C언어의 컴파일러를 이용하여 빌드한 소스코드이며, 모두 실행하여 확인한 코드들입니다.

 

C++의 경우 프리컴파일 시 사용자정의함수 등을 미리 선언하지 않으면 오류가 발생합니다.

C의 경우 프리컴파일 시 문맥을 분석하여 사용자정의함수를 자동으로 앞으로 이동시킨 후에 컴파일 과정에 들어가므로, 오류가 발생하지 않습니다.

 

참고로 C++의 파일명은 .cpp, C의 파일명은 .C 입니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-11-13 10:28:21

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

     

    C++ 컴파일러를 사용하지 않으셨는지 확인해보시기 바랍니다.

     

    해당 문제들은 C언어의 컴파일러를 이용하여 빌드한 소스코드이며, 모두 실행하여 확인한 코드들입니다.

     

    C++의 경우 프리컴파일 시 사용자정의함수 등을 미리 선언하지 않으면 오류가 발생합니다.

    C의 경우 프리컴파일 시 문맥을 분석하여 사용자정의함수를 자동으로 앞으로 이동시킨 후에 컴파일 과정에 들어가므로, 오류가 발생하지 않습니다.

     

    참고로 C++의 파일명은 .cpp, C의 파일명은 .C 입니다.

     

    행복한 하루되세요 :)

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