c 함수포인터 예제

By | August 2, 2019

7) C++의 많은 개체 지향 기능은 C의 함수 포인터를 사용하여 구현됩니다. 예를 들어 가상 기능. 클래스 메서드는 함수 포인터를 사용하여 구현된 또 다른 예입니다. 자세한 내용은 이 책을 참조하십시오. C에서 식 자체에 사용되는 함수의 이름이 해당 함수에 대한 포인터라는 사실을 사용하여 함수 포인터 변수에 값을 할당할 수 있습니다. 예를 들어 isquare() 및 square())가 다음과 같이 선언되는 경우: Void 포인터는 함수 선언 중에 사용됩니다. 우리는 모든 유형을 반환 할 수 있도록 무효 * 반환 유형 허가를 사용합니다. 함수에 전달할 때 매개 변수가 변경되지 않는다고 가정하면 const로 선언합니다. 다시 기억합시다.

함수 포인터를 사용하는 이유는 무엇입니까? 1. 프로그래머가 다른 용도로 라이브러리를 사용할 수 있도록 -> “유연성”5) 기능 포인터는 스위치 케이스 대신 사용할 수 있습니다. 예를 들어 아래 프로그램에서는 사용자가 다른 작업을 수행하기 위해 0과 2 중에서 선택하라는 메시지가 표시됩니다. 마지막으로 지정된 단계 크기를 사용하여 정수를 업데이트하는 함수에 대한 포인터를 사용하여 제네릭 합계 함수를 향상시킬 수 있습니다. 함수 포인터를 매개 변수로 사용하면 유연한 함수 및 프로그램이 사용됩니다. 예를 들어 접근 방식을 보여 줍니다. 정수를 x에서 y까지 지정된 범위로 합산한다고 가정합니다. 우리는 쉽게 그렇게 할 수있는 함수를 구현 할 수 있습니다 : 함수포인터를 역참조하여 함수에 액세스 할 수 있습니다 : 함수에 대한 포인터는 * 선언으로 선언됩니다.

함수 포인터의 배열을 정의합니다. 각 배열 요소에는 동일한 매개 변수와 반환 형식이 있어야 합니다. 예제의 도움으로 이것을 이해할 수 있습니다 : 여기서 우리는 두 숫자의 합계를 계산하고 합계를 반환하는 함수 합계가 있습니다. 우리는이 함수를 가리키는 포인터 f2p를 만들었습니다, 우리는이 함수 포인터 f2p를 사용하여 함수를 호출하고 있습니다. /* 함수는 x. */ int isquare(int x) { 반환 x * x; } 여기서 더블은 함수의 반환 유형이며 p2f는 함수 포인터의 이름이며 (이중, char)는이 함수의 인수 목록입니다. 즉, 이 함수의 첫 번째 인수는 이중 형식이고 두 번째 인수는 char 형식입니다. 함수 포인터를 선언하는 구문은 함수 선언 구문과 유사합니다. 유일한 차이점은 함수 이름을 사용하는 대신 괄호 () 내에서 포인터 이름을 사용한다는 것입니다.

함수 포인터의 배열은 다음 프로그램에서와 같이 결정을 내리기위한 스위치 또는 if 문 역할을 재생할 수 있습니다 : 함수 포인터와 관련된 몇 가지 포인트 : 1. 주석에서 언급 했듯이 함수 포인터를 선언하고 단일 상태 면에서 함수를 할당 할 수 있습니다. NT: 3) 함수의 이름을 사용하여 함수의 주소를 얻을 수도 있습니다. 예를 들어, 아래 프로그램에서는 할당시 주소 연산자 `&`를 제거했습니다. 우리는 또한 *를 제거하여 기능 호출을 변경했습니다, 프로그램은 여전히 작동합니다. qsort(와 마찬가지로 모든 데이터 형식에 사용할 수 있고 코드 중복 성 없이 다른 작업을 수행할 수 있는 자체 함수를 작성할 수 있습니다.) 다음은 모든 데이터 형식에 사용할 수 있는 예제 검색 함수입니다. 실제로 이 검색 함수를 사용하여 사용자 지정된 비교 함수를 작성하여 가까운 요소(임계값 이하)를 찾을 수 있습니다. 포인터를 기억하십니까? 우리는 문자의 배열을 가리키고 그(것)들에서 문자열을 만드는 것을 이용했습니다. 그런 다음 이러한 포인터를 제어하는 방법을 배웠을 때 상황이 더 흥미로워졌습니다. 이제 포인터를 사용하여 함수를 가리키고 호출하는 포인터로 더 흥미로운 작업을 수행할 차례입니다. 함수가 포인터를 사용하여 주소로 액세스하기 때문에 프로그램은 실제 변수 값을 바꿉습니다.

Category: Uncategorized