[C] C 에서 typeof, typeof 란? C언어 typeof

728x90
반응형

리눅스 gcc는 비주얼 vc++ 컴파일러와는 다르게

메크로 함수 선언시에  아래에서 보듯이 함수 구현이 한 행으로 구현이 안될 경우 \ 이걸로 개행을 표기하여준다. 또 

대괄호 ( 안에 중괄호 { 로 포개어준다.

#define container_of(ptr, type, member)\ 
    ({
        const typeof( ((type *)0)->member ) *__mptr = (ptr);\
        (type *)( (char *)__mptr - offsetof(type,member) );\
    })

위 소스에서 typeof에는 gcc의 확장된 기능인데
 해당 변수의 타입을 반환하는 역할을 하는 매크로 함수이다.
가령 int a;로 a라는 변수 선언후에
typeof(a) b ; 를 선언하게되면
typeof(a) b  = int b ;랑
똑같은 의미를 가지게 된다.

 

 

728x90
반응형