__typeof__ 연산자(?) 키워드(?)

dandb3·2023년 6월 1일
0

C언어 문법

목록 보기
3/4

__typeof__(x)
예시로 보는 것이 제일 효과적일 것 같다.

int x;
__typeof__(x) i;
y = (__typeof__(x)) j;	// equiavalent as y = (int) j;

int arr[2];
//아래는 전부 동일 - int k[2]와 같다.
__typeof__(int[2]) k;
__typeof__(arr) k;
  • 위에서 알 수 있듯이, 어떠한 객체 혹은 자료형을 인자로 받아 그 자료형에 해당하는 expression으로 치환해 주는 역할을 한다.

  • 어디에 쓸 수 있을까?
    매크로 함수에 적합한데, 예시를 보면 이해가 잘 될 것이다.

    #define SWAP(a,b) { __typeof__(a) temp; temp = a; a = b; b = temp; }

    자료형이 정해져 있지 않은 매크로 함수의 단점을 해결할 수 있다.

  • 참고 자료

profile
공부 내용 저장소

0개의 댓글