"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++에서 함수 이름을 인쇄하면 \"1\"이 나오는 이유는 무엇입니까?

C++에서 함수 이름을 인쇄하면 \"1\"이 나오는 이유는 무엇입니까?

2024-11-08에 게시됨
검색:976

Why Does Printing a Function Name in C   Result in \

호출 없이 함수 계산하기: 미스터리 풀기

이것을 상상해보세요: 괄호를 사용하여 함수를 호출하는 대신 코딩을 하고 있다고 가정해 보세요. 간단히 이름을 인쇄하면 됩니다. 놀랍게도 결과는 항상 1입니다. 이 색다른 접근 방식은 1과 예상되는 함수 포인터의 부재에 대해 당황하게 만듭니다.

코드의 복잡성을 자세히 살펴보겠습니다.

#include 
using namespace std;

void pr()
{
    cout 

의도와는 달리 실제로 cout

이해를 돕기 위해 인쇄하기 전에 cout

C 11은 우아한 솔루션을 제공하는 반면:

template 
std::ostream & operator

이 오버로드를 사용하면 임의 개수의 함수 포인터를 인쇄하여 함수 포인터의 주소 및 인수 수와 같은 정보를 표시할 수 있습니다.

자, 여기까지입니다. 수수께끼의 1은 다음과 같습니다. 단순한 우연이 아니라 암시적 유형 변환의 결과입니다. 예상치 못한 결과를 방지하고 보다 강력한 코드를 작성하려면 이 동작을 이해하는 것이 중요합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3