Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C의 미리 정의된 식별자 __func__

<시간/>

식별자 프로그램에서 엔티티를 식별하기 위해 프로그래밍에서 엔티티에 부여된 이름입니다.

일반적으로 식별자는 효율적인 작업을 위해 프로그래머가 생성하지만 프로그래밍에 내장된 미리 정의된 식별자가 있습니다. 예:cout, cin 등

여기에서 __func__인 C 프로그래밍 언어의 미리 정의된 식별자 중 하나를 볼 수 있습니다.

__func__의 공식 정의는 -

입니다.

“식별자 __func__는 마치 각 함수 정의의 여는 중괄호 바로 다음에 있는 것처럼 번역기에 의해 암시적으로 선언되어야 합니다.

static const char __func__[] = “function-name”;

여기서 function-name은 사전적으로 둘러싸는 함수의 이름입니다."

C 프로그램 __func__는 함수 이름을 사용하여 함수를 식별하기 위해 생성된 컴파일러 생성 식별자입니다.

개념을 보다 명확하게 하기 위해 몇 가지 코드 예제를 살펴보겠습니다.

예시

#include <stdio.h>
void function1 (void){
   printf ("%s\n", __func__);
}
void function2 (void){
   printf ("%s\n", __func__);
   function1 ();
}
int main (){
   function2 ();
   return 0;
}

출력

function2
function1

설명 − 여기에서 호출된 함수의 이름을 반환하기 위해 __func__ 메서드를 사용했습니다. 식별자는 호출된 함수의 이름을 반환합니다. 두 인쇄 문은 자체 메서드 참조를 위해 __func__를 호출했습니다.

이것은 주요 방법에서도 작동합니다. 예,

예시

#include <stdio.h>
int main (){
   printf ("%s\n", __func__);
   return 0;
}

출력

main

그러나 이것은 덮어쓸 수 없습니다. 즉, __func__는 함수 이름 전용으로 예약되어 있습니다. 다른 것을 저장하는 데 사용하면 오류가 반환됩니다.

보자

예시

#include <stdio.h>
int __func__ = 123;
int main (){
   printf ("%s\n", __func__);
   return 0;
}

출력

error

C 프로그래밍 언어에는 유사한 식별 작업을 수행하는 다른 유사한 기능도 있습니다. 일부는

__파일__ - 현재 파일의 이름을 반환합니다.

__LINE__ - 현재 줄의 번호를 반환합니다.

구현을 보여주는 코드를 보자

예시

#include <stdio.h>
void function1(){
   printf("The function: %s is in line: %d of the file :%s\n", __func__,__LINE__,__FILE__);
}
int main(){
   function1();
   return 0;
}

출력

The function: function1 is in line: 3 of the file :main.c

설명 − __func__,__LINE__,__FILE__ 식별자를 사용하여 현재 호출되는 파일 이름, 코드 줄 및 함수에 관한 정보를 수집할 때 유용할 수 있는 몇 가지 일반 함수입니다.