출처: http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/
GCC 확장(?)의 하나로서, GCC는 변수에 대한 참조를 통해서 타입을 확인할 수 있다. 이런 방법을 흔히 'generic programming'이라고 부르며 비슷한 기능을 제공하는 것을 현재 쓰이는 언어들에서 찾아 볼 수 있다.[1]
Linux의 경우, typeof를 사용하여 타입 종속적인 작업, (예를 들어 min/max 를 구별)을 할 수 있다.
간단한 예를 들어보자.(/linux/include/linux/kernel.h)
보이는 바와 같이 _min1은 x가 어떤 타입이냐에 따라서 그 타입을 가지게 된다; _min2 역시 y에 따라 타입이 달라진다. 이렇게 타입을 가지게 되므로 크기를 비교할 수 있게 되며, 어떠한 타입이 들어와도 대응할 수 있게 된다.
[1] 제네릭 프로그래밍(Generic programming)은 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이다
'리눅스 > 커널' 카테고리의 다른 글
리눅스 커널 분석 시 아키텍쳐별 tag 및 cscope생성 (0) | 2012.04.16 |
---|---|
Virtual Linux Manager 정리 1 (0) | 2012.03.18 |
Documentation/arm/booting (0) | 2011.09.25 |
Linux 3.0 Kernel (0) | 2011.07.31 |
커널선점 (0) | 2011.05.01 |