자료실에 올라온 코드 모음집을 다운받아 확인을 해봤습니다. 그러던 중에 이해가 가지 않는 부분이 있어 질문을 드립니다.
먼저 자료를 기반으로 .c 소스파일을 만들어 실행시키면 문제없이 실해됩니다. 코드에 문제가 있다는 건 아니란 말이죠..
그런데 왜.. .cpp 소스파일을 만들어서 실행시킨다면 왜 문법 오류가 나는지 모르겠습니다..
1. .cpp 소스파일에서 #include <cstdio> 도 해봤고
2. #include <iostream>도 해봤습니다.
1번과 2번 모두 빨간 줄이 그이면서 오류라고 하더군요.
.c와 .cpp에 어떤 차이가 있길래 그런 오류가 나는 것일까요..?
첨부된 file은 .cpp기반 #include <iostream>을 한 환경입니다.
실행환경
* OS: Windows 10 edu
* IDE: Microsoft Visual Studio 2017
안녕하세요 길벗수험서 운영팀입니다.
C++에 대해서는 잘 알지못해 정확한 답변은 어렵습니다.
기본적으로 C++은 사용자 정의 함수를 선언시 매개변수의 외부 선언이나 프로토타입 선언이 동일한 방식으로는 불가능한 것으로 알고 있습니다.
아래의 코드를 변형해서 수행해보시기 바랍니다.
#include <stdio.h>
void prnt(int *a, int *b, int *c) {
while (*x < *y) {
++*x;
*z = *z + *x;
prnt(x, y, z);
}
}
main() {
int a = 0, b = 5, c = 0;
prnt(&a, &b, &c);
printf("a=%d, b=%d, c=%d\n", a, b, c);
}
행복한 하루되세요 :)
-
관리자2020-03-05 14:48:54
안녕하세요 길벗수험서 운영팀입니다.
C++에 대해서는 잘 알지못해 정확한 답변은 어렵습니다.
기본적으로 C++은 사용자 정의 함수를 선언시 매개변수의 외부 선언이나 프로토타입 선언이 동일한 방식으로는 불가능한 것으로 알고 있습니다.
아래의 코드를 변형해서 수행해보시기 바랍니다.
#include <stdio.h>
void prnt(int *a, int *b, int *c) {
while (*x < *y) {
++*x;
*z = *z + *x;
prnt(x, y, z);
}
}
main() {
int a = 0, b = 5, c = 0;
prnt(&a, &b, &c);
printf("a=%d, b=%d, c=%d\n", a, b, c);
}
행복한 하루되세요 :)