함수 포인터 : 1. 특정 함수를 구성하는 시작 명령의 위치를 가리키는 포인터
2. 함수 포인터를 사용하여 함수를 호출하여 실행 가능
함수의 주소 값으로 함수 실행하기
함수 포인터 선언 및 함수의 주소 대입
int (*p) (int, int) // Sum 함수를 가리킬 수 있는 함수 포인터 선언
p = &Sum // Sum 함수의 주소를 p에 저장
함수 포인터로 함수 호출
int result = (*p)(2,3) // int result = Sum(2,3); 과 동일
typedef int (*FP_OP)(int,int)
FP_OP fp = ∑ // int (*fp)(int, int) typedef를 이용하면 함수 포인터를 좀더 쉽게 표현 가능해진다
FP_OP fp[4];
콜백 함수
라이브러리를 만드는 라이브러리 프로그래머
구조체 struct를 사용
공용체는 union을 사용
공용체의 요소들은 할당된 메모리를 공유한다
공용체는 메모리 절약의 끝판왕
구조체 문법으로 비트 단위 분리하기
구조체 비트 분리 문법을 사용한 변수와 일반 변수는 값 교환이 힘듦
공용체를 사용해서 좀 더 편하게 비트 단위 분리하기
#define 과 typedef를 헷살리지말자
전처리기 #define 과 typedef 문법
#define은 컴파일러에게 이런 용어로 바꿔달라고하는 부분이고
typedef은 사용자가 새롭게 정의해서 사용하는 문법
typedef 문법으로 상수 치환은 불가능하다
열거형(enum) : 상수를 좀더 효과적으로 치환하는 방법
조건부 컴파일 : 자기가 만든 코드를 테스트하는 것이 프로그래머의 기본이다
소스 코드에 테스트 코드 사용
전처리기를 사용해서 조건에 따라 필요한 문장만 골라 컴파일하기
#ifdef 전처리기와 #endif 전처리기
테스트용으로 많이쓰임 #define My ~~ 이런식으로 정의를해주면 거기에있는 #ifdef를 읽어주는것이고
반대로 없으면 읽지않고 지나감 그러므로 테스트용으로 많이쓰임
#ifdef와 반대인 #ifndef 전처리기
헤더 파일 중복 참조를 막는 방법
헤더 파일 중복 참조 오류는 조건부 컴파일을 사용하면 해결 가능
포인터와 증감 연산자를 잘 써야 명령문이 간단해진다
*p++ 와 *++p 의 의미