struct baby { uint8 Ams:4; uint8 Que:4; uint8 Box; };
이런 괴상한 구문을 보았습니다. Mask라는 개념이 들어가는 것 같은데, 이것이 C 구문 맞나요? 아니면.. C++인가요?
처음보는 구문이라 생소하네요. 이것이 뭔지, 왜 쓰이는지 아시는 분은 답변 좀 부탁드려요.
비트 필드인가... 코딩안한지 여러달 되니까... 헷갈리내염... - -;; 아마 비트 필드 맞을꺼에요.
C의 문법으로서 비트필드 구조체(bit-field structure)라고 하는 것입니다. 흔히 사용되지는 않습니다. 일반적인 리틀 엔디언 아키텍쳐에서는 아마도 다음과 같이 배치될 확률이 가장 큽니다:
0100110001001001 ^^^^^^^^****^^^^ Box Que Ams
Real programmers /* don't */ comment their code. If it was hard to write, it should be /* hard to */ read.
한 바이트의 메모리를 할당하고 PC 같은 리틀앤디안에서는 하위 4 bit를 Ams에 할당하고 상위 4 bit를 Que에 할당합니다. 총 구조체 Baby는 2바이트 구조체가 됩니다.
감사합니다.^^~
-_-v
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
비트 필드인가...
비트 필드인가... 코딩안한지 여러달 되니까...
헷갈리내염... - -;;
아마 비트 필드 맞을꺼에요.
C의 문법으로서
C의 문법으로서 비트필드 구조체(bit-field structure)라고 하는 것입니다. 흔히 사용되지는 않습니다.
일반적인 리틀 엔디언 아키텍쳐에서는 아마도 다음과 같이 배치될 확률이 가장 큽니다:
unsigned를 사용한 이유는 그래야 0~15라는 (아마도) 기대했던 범위를 얻을 수 있기 때문입니다.
그렇지 않으면 -8~7까지의 범위를 사용하게 됩니다. (사실, 그냥 int를 써도 비트필드 안에서는 unsigned로 취급됩니다.)
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
bit field가 맞습니다.
한 바이트의 메모리를 할당하고 PC 같은 리틀앤디안에서는 하위 4 bit를 Ams에 할당하고
상위 4 bit를 Que에 할당합니다.
총 구조체 Baby는 2바이트 구조체가 됩니다.
감사합니다.
감사합니다.^^~
-_-v
댓글 달기