#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 함수 이전에 놓고 쓰던데, 문제에 오류가 있는 건가요?
안녕하세요 길벗수험서 운영팀입니다.
C++ 컴파일러를 사용하지 않으셨는지 확인해보시기 바랍니다.
해당 문제들은 C언어의 컴파일러를 이용하여 빌드한 소스코드이며, 모두 실행하여 확인한 코드들입니다.
C++의 경우 프리컴파일 시 사용자정의함수 등을 미리 선언하지 않으면 오류가 발생합니다.
C의 경우 프리컴파일 시 문맥을 분석하여 사용자정의함수를 자동으로 앞으로 이동시킨 후에 컴파일 과정에 들어가므로, 오류가 발생하지 않습니다.
참고로 C++의 파일명은 .cpp, C의 파일명은 .C 입니다.
행복한 하루되세요 :)
-
관리자2019-11-13 10:28:21
안녕하세요 길벗수험서 운영팀입니다.
C++ 컴파일러를 사용하지 않으셨는지 확인해보시기 바랍니다.
해당 문제들은 C언어의 컴파일러를 이용하여 빌드한 소스코드이며, 모두 실행하여 확인한 코드들입니다.
C++의 경우 프리컴파일 시 사용자정의함수 등을 미리 선언하지 않으면 오류가 발생합니다.
C의 경우 프리컴파일 시 문맥을 분석하여 사용자정의함수를 자동으로 앞으로 이동시킨 후에 컴파일 과정에 들어가므로, 오류가 발생하지 않습니다.
참고로 C++의 파일명은 .cpp, C의 파일명은 .C 입니다.
행복한 하루되세요 :)