호출된 함수가 실행을 완료할 때까지 대기 --> 실행 계속"입니다."/> 호출된 함수가 실행을 완료할 때까지 대기 --> 실행 계속"입니다.">
일반 함수 호출: 호출 프로그램이 일반 함수를 호출한 후 호출된 함수가 실행을 완료할 때까지 프로그램 실행이 호출된 함수로 즉시 전환됩니다. . 그런 다음 호출 프로그램으로 돌아가 실행을 계속합니다. 호출 프로그램의 관점에서 볼 때 이 프로세스는 "호출 --> 호출된 함수가 완료될 때까지 대기 --> 실행 계속"입니다.
콜백 함수 호출: 호출 프로그램이 콜백 함수 호출을 발행한 후, waiting 함수가 실행된 후 즉시 반환되어 실행을 계속합니다. 이런 방식으로 호출 프로그램과 호출된 함수가 동시에 실행됩니다. 호출된 함수가 실행을 완료하면 호출된 함수는 미리 지정된 함수를 호출하여 함수 호출이 종료되었음을 호출 프로그램에 알립니다. 이 과정을 콜백(Callback)이라고 하는데, 여기서 콜백 함수의 이름이 유래되었습니다.
일반 함수와 콜백 함수는 다른 함수에 의해 호출됩니다. 차이점은 호출자가 호출하는 내용을 정확히 알고 있는지 여부입니다. 예:
void func1(){}
void func2(){}
typedef void (*fp) ();//함수 포인터를 선언하고 fp는 null 매개변수를 나타내며 void
void funcCaller1() 유형의 함수 포인터를 반환합니다.{
//여기서 func1은 일반 함수
func1()로 간주할 수 있습니다. ;// 여기서 funcCall1은 자신이 func1을 호출했다는 사실을 분명히 알고 있습니다
}
void funcCaller2(fp funcPtr){
funcPtr();//여기서 funcCall2는 자신이 무엇을 호출하고 있는지 모르고 빈 값으로 A 함수를 호출했다는 것만 알고 있습니다. 매개변수 및 반환 유형 void
}
void funcCaller3(){
//여기서 funcCaller2는 일반 함수이고 func1은 콜백 함수
funcCaller2(func1);//funcCaller2를 호출하면 매개변수는 func1입니다
// 여기서 , funcCaller2는 일반 함수, func2는 콜백 함수
funcCaller2(func2);//funcCaller2 호출, 매개변수는 func2
}
위 내용은 콜백 함수와 일반 함수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!