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
반응형
'Programming language > C' 카테고리의 다른 글
[C] memset 사용법, memset 을 이용한 변수 초기화 (0) | 2023.02.25 |
---|---|
[C] C언어, double to ascii, serial 통신에서 데이터 변환 (0) | 2022.12.30 |
[C] float to ascii(실수형을 아스키 코드로) (1) | 2022.09.21 |
[C] 포인터, C 포인터, C Pointer, 포인터 활용하기 - 1 (0) | 2022.09.03 |
[C] sscanf, C언어 sscanf, sscanf 함수, sscanf 사용법 (0) | 2022.08.31 |