Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Windows Build
- working set
- OculusMotionVectorPass
- Specular
- URP
- Three(Two) Tone Shading
- Cartoon Rendering
- 3d
- 작업 집합
- C언어
- 게임 수학
- ASW(Application SpaceWarp)
- 가상 바이트
- URP로 변경
- 프로그래밍 기초
- 벡터
- Rim Light
- Toon Shader
- Private Bytes
- ColorGradingLutPass
- Cell Shader
- 메모리 누수
- Cell Look
- 개인 바이트
- Virtual Byte
- AppSW
- VR
Archives
- Today
- Total
WinCNT
C 언어 - 15. 함수 포인터 본문
함수 포인터
C언어 프로그램의 모든 함수는 내부적으로 포인터의 형태로 관리할 수 있다
- 함수 이름은 주소값을 반환한다
#include<stdio.h> void function() { printf("It's my function."); } int main(void) { printf("%d\n", function); //-1202383931, 함수의 주소값 system("pause"); return 0; }
- 함수 포인터는 특정한 함수의 반환 자료형을 지정하는 방식으로 선언 가능하다
반환 자료형 (*이름)(매개변수) = 함수명; - 함수 포인터를 이용하면 형태가 같은, 서로 다른 기능의 함수를 선택적으로 사용 가능하다
즉 형태가 같은 여러 개의 함수를 같은 명령어로 호출 가능하다
함수 포인터의 형태 및 예시
- 매개변수 및 반환 자료형이 없는 함수 포인터
//매개변수 및 반환 자료형이 없는 함수 포인터 #include<stdio.h> void myFunction() { printf("It's my function.\n"); } void yourFunction() { printf("It's Your function.\n"); } void main(void) { //반환 자료형 (*이름)(매개변수) = 함수명; void(*fp)() = myFunction; fp(); //반환 자료형 (*이름)(매개변수) = 함수명; fp = yourFunction; fp(); //같은 명령어로 호출 system("pause"); return 0; }
- 매개변수 및 반환 자료형이 있는 함수 포인터
#include<stdio.h> int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } void main(void) { int(*functionPointer)(int, int) = add; printf("%d\n", functionPointer(10, 5)); //15 functionPointer = sub; printf("%d\n", functionPointer(10, 5)); //5 system("pause"); return 0; }
- 함수 포인터를 반환하여 사용하기
#include<stdio.h> int add(int a, int b) { return a + b; } //process라는 함수 포인터 자체에 (char* a)라는 매개변수가 있고, //add라는 함수 포인터를 반환하는 함수 //(int, int)는 add의 매개변수 int (*process(char* a))(int, int) { printf("%s\n", a); return add; } void main(void) { printf("%d\n", process("10과 20을 더해보겠습니다.")(10, 20)); system("pause"); return 0; }
'Study > C' 카테고리의 다른 글
C 언어 - 16. 구조체 (0) | 2021.10.02 |
---|---|
C 언어 - 14. 동적 메모리 할당 (0) | 2021.09.09 |
C 언어 - 13. 다차원 배열과 포인터 배열 (0) | 2021.09.08 |
C 언어 - 12. 컴퓨터가 변수를 처리하는 방법 (0) | 2021.09.06 |
C 언어 - 11. 문자열 (0) | 2021.09.05 |