IT이야기

함수 이름 앞에 아스타리스크가 있는 기능은 무엇입니까?

cyworld 2022. 6. 8. 23:42
반응형

함수 이름 앞에 아스타리스크가 있는 기능은 무엇입니까?

나는 대부분의 C프로그램에서 볼 수 있는 낯선 함수 선언과 혼동되어 왔다.

void *func_name(void *param){
    ...
}

무엇인가.*함수에 대한 의미?(에 대한 이해*변수 타입에서는 다른 변수에 대한 포인터를 생성하여 후자의 변수가 메모리에 저장되어 있는 주소를 추적할 수 있습니다.하지만 이 함수의 경우, 나는 이것이 무엇인지 모르겠다.*아스타리스크는 시사하는 바입니다.

아스타리스크는 반환 유형에 속하며 함수 이름에 속하지 않습니다.

void* func_name(void *param) { . . . . . }

이는 함수가 보이드 포인터를 반환함을 의미합니다.

*는 함수의 반환 유형을 나타냅니다.void *.

포인터 변수를 선언할 때, 이 명령어를*변수 이름 또는 변수 유형에 가깝습니다.

int *a;
int* a;

저는 개인적으로 첫 번째 선택지가 더 명확하다고 생각합니다. 왜냐하면 만약 당신이 여러 포인터를 정의하려면,세퍼레이터를 반복해야 합니다.*매번:

int *a, *b;

이 경우 "close to type 구문"을 사용하면 오해의 소지가 있습니다.다음 사항을 기입하면 다음과 같습니다.

int* a, b;

int에 대한 포인터를 선언하고 있습니다.aint ( ) 및 int ( )b).

이 구문은 함수 반환 유형에서도 찾을 수 있습니다.

*반환 유형에 속합니다.이 함수는 반환됩니다.void *, 타입이 지정되지 않은 메모리 위치에 대한 포인터입니다.

포인터는 일부 메모리 위치의 주소를 값으로 하는 변수 유형입니다.C의 여러 포인터 유형은 포인터 변수가 참조하는 메모리 위치에 있을 것으로 예상되는 여러 유형을 나타냅니다.비상대기상태int *로 해석할 수 있는 장소를 참조할 것으로 예상됩니다.int하지만...void *는 지정되지 않은 유형의 메모리 위치를 참조하는 포인터 유형입니다.데이터가 참조하는 메모리 위치에서 데이터에 액세스할 수 있으려면 이러한 보이드 포인터를 주조해야 합니다.

즉, 함수가 A를 반환하는 것을 의미합니다.void*.

언급URL : https://stackoverflow.com/questions/8911230/what-is-the-function-of-an-asterisk-before-a-function-name

반응형