리눅스 커널 소스를 살펴보다가 스트럭쳐 안에 이상한 형식의 변수 선언을 보았다.struct task_struct { ... unsigned did_exec:1; ...};이런 형태였는데, 변수를 선언한 다음 콜론(:)과 숫자가 오는 형태는 여지껏 본 적이 없었다.구글링을 하여 찾아보니 bit field라는 이름의 C언어의 문법 중 하나라는 것을 알게 되었다.미리 이야기하자면 위의 구문은 did_exec라는 1bit짜리 변수를 선언한 것이다.struct f{ unsigned int flag : 1; -- bit flag: on(1) 또는 off(0)의 값을 가질 수 있다. -- signed int num : 4; -- signed 4-bit field; -7...7 또는 -8...7의 값을 갖는다. -- : 3; -- 스트럭쳐를 8bit로 맞추기 위한 3bit의 padding bit --} g;
'Development > C/C++' 카테고리의 다른 글
[char형의 비트셋을 출력하고 싶을 때] (0) | 2012.08.19 |
---|---|
[LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 의 의미] (0) | 2012.08.19 |
[Call by Value와 Call by Reference] (1) | 2012.05.05 |
[Event] (0) | 2011.12.01 |
[Semaphore] (0) | 2011.12.01 |