• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

함수 호출 로그에 대해 질문 있습니다.

23.10.18 00:09 작성 조회수 185

1

지금 전문가를 위한 C++ (개정판 3판)으로 공부하고 있습니다.

이 부분에서 오류가 발생해서 구글 검색을 해봤는데도 해결을 하지 못했습니다.

이 예제를 실행시키려면 어떠한 문법을 써야 하나요?

답변 2

·

답변을 작성해보세요.

2

수박님의 답변이 정확합니다. 책의 문구를 보시면 "자동으로" 정의된다라고 적혀 있습니다. 바꿔말하면 이미 나도 모르는 사이에 더블언더스코어func더블언더스코어 라는 이름의 변수가 정의가 되어 있기 때문에 같은 이름의 변수를 새로 만들 수가 없습니다. 아마 에러 메시지도 그렇게 나왔을 겁니다.

  • 강의와 직접적으로 연관되지 않은 질문은 디스코드로 오세요.

https://discord.gg/E64DNJaaQz

 

윤주헌님의 프로필

윤주헌

질문자

2023.10.20

감사합니다.

2

Soobak님의 프로필

Soobak

2023.10.18

안녕하세요, 답변 도우미 Soobak 입니다.

 

__func__ 라는 사전 정의 식별자는 C++11 표준 이후부터 지원되는 기능입니다.

따라서, 첫 번째로 컴파일러의 버전을 확인해보시길 바랍니다.

 

두 번째로, 질문자님께서 예제의 어떠한 부분부터 실행에 문제를 겪으셨는지 제가 알 수 없어서 도움을 드리는 데에 한계가 있네요. 🥲

 

해당 내용을 활용한 간단한 예시 코드를 첨부드리오니, 확인해보시고 추가적인 궁금증이 있으시다면 편하게 댓글을 남겨주시면 감사하겠습니다.

 

예시코드
: addNumbers() 함수를 실행할 시, 함수의 이름을 출력하여, 로그(Log)를 남기도록 합니다.

#include <iostream>

int addNumbers(int number1, int number2)
{
    std::cout << "Entering function " << __func__ << std::endl; 
    return number1 + number2;
}

int main() {
    int sum = addNumbers(5, 3);
    std::cout << "Sum: " << sum << std::endl;
    return 0;
}

실행결과

image

윤주헌님의 프로필

윤주헌

질문자

2023.10.18

감사합니다.

image이 부분 때문에 에러가 나서 실행이 안됩니다.

Soobak님의 프로필

Soobak

2023.10.19

안녕하세요, 답변 도우미 Soobak 입니다.

 

제가, 해당 책의 작성자 분에 대한 의견을 알 수는 없지만,
개인 적인 의견으로, 해당 부분은 실행을 위한 코드가 아니라, __func__ 사전정의 식별자의 설명을 위한 교육적 목적의 코드로 생각됩니다.


첨부해주신 사진의 맨 아래의 예시 코드와 제 답변에서 첨부드린 예시 코드를 참고해보시면 좋을 것 같습니다.