>  기사  >  C 언어로 콜백 함수를 구현하는 방법

C 언어로 콜백 함수를 구현하는 방법

清浅
清浅원래의
2019-04-16 14:12:266285검색

콜백 함수는 통일된 인터페이스를 통해 다양한 기능을 구현하는 것입니다. C 언어의 콜백 함수는 전달된 다양한 매개변수에 따라 코드 내에서 다양한 콜백 함수를 호출하는 것입니다

콜백 함수 입니다. 프로그래머가 명시적으로 호출할 수 없는 함수는 콜백 함수의 주소를 호출자에게 전달하여 호출됩니다. 콜백 함수의 사용이 필요합니다. 통일된 인터페이스를 통해 다양한 콘텐츠를 구현하려면 콜백 함수가 매우 적합합니다.

C 언어로 콜백 함수를 구현하는 방법

[추천 튜토리얼: C 언어 튜토리얼#🎜🎜 #

예를 들어, 여러 기기에 대해 서로 다른 디스플레이 기능을 작성했습니다.

void TVshow(); 
void ComputerShow(); 
void NoteBookShow()...等等。

이것이 바로 통합 디스플레이를 사용하려는 기능입니다. 함수, 이때 fallback 함수를 사용할 수 있습니다.

void show(void (*ptr)());

사용 시 전달된 매개변수에 따라 서로 다른 콜백 함수가 호출됩니다.

다른 프로그래밍 언어는 구문이 다를 수 있습니다. 다음은 C 언어의 콜백 함수의 예입니다. 한 콜백 함수는 매개변수를 사용하지 않고 다른 콜백 함수는 매개변수를 사용합니다.

#include <stdlib.h>
#include <stdio.h>
int Test1()
{
    int i;
    for(i=0; i<30; i++)
    {
        printf("The %d th charactor is: %c\n", i, (char)(&#39;a&#39; + i%26));
    }
    return 0;
}
int Test2(int num)
{
    int i;
    for (i=0; i<num; i++)
    {
        printf("The %d th charactor is: %c\n", i, (char)(&#39;a&#39; + i%26));
    }
    return 0;
}
void Caller1( void (*ptr)() )//指向函数的指针作函数参数
{
    (* ptr)();
}
void Caller2(int n, int (*ptr)())//指向函数的指针作函数参数,这里第一个参数是为指向函数的指针服务的,
{
    //不能写成void Caller2(int (*ptr)(int n)),这样的定义语法错误。
    (* ptr)(n);
}
int main()
{
    printf("************************\n");
    Caller1(Test1);     //相当于调用Test1();
    printf("&&&&&&************************\n");
    Caller2(30, Test2); //相当于调用Test2(30);
    return 0;
}

렌더링은 다음과 같습니다

C 언어로 콜백 함수를 구현하는 방법

위는 콜백 함수의 주소를 호출자에게 전달하여 호출하는데, 그러나 매개변수와 함께 콜백 함수를 사용한다는 점에 유의해야 합니다.

콜백을 구현하려면 먼저 함수 포인터를 정의해야 합니다. 여기서는 함수 포인터의 정의를 간략하게 설명합니다.

예:

int (*ptr)();

여기서 ptr은 함수 포인터입니다. 여기서 괄호(*ptr)는 생략할 수 없습니다.

왜냐하면 대괄호는 우선순위가 높습니다. 별표를 사용하면 정수 반환 유형의 함수 선언이 됩니다.

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들께 도움이 되었으면 좋겠습니다.

위 내용은 C 언어로 콜백 함수를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.