책 내용 질문하기
162페이지 46번 질문있습니다.
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
162
조회수
171
작성일
2020-03-05
작성자
탈퇴*원
첨부파일

자료실에 올라온 코드 모음집을 다운받아 확인을 해봤습니다. 그러던 중에 이해가 가지 않는 부분이 있어 질문을 드립니다.

 

먼저 자료를 기반으로 .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

답변
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);

}

 

행복한 하루되세요 :)

  • 관리자
    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);

    }

     

    행복한 하루되세요 :)

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