예전에 얼핏 설명을 들었던것 같은데 기억이 잘 안나네요.
다음과 같은 형태로 변수가 선언되어 있습니다. (이건 그냥 제가 임의대로 적어 놓은 것입니다.)
int main(){ int i:8; }
이상한 형태이지 않나요? 정말 예전에 들어본 것 같은데 기억이 안나네요. ㅎㅎ
bit field였던 거 같습니다. 저도 기억이 잘 안나네요.. :-(
---- Let's shut up and code.
bit field 맞습니다.
구조체 안의 변수 선언 뒤에 ": 숫자" 를 넣어주면
그 변수는 해당 숫자의 비트 크기 만큼의 메모리를 사용하겠다는 의미입니다.
(위의 경우 i 변수는 8 bit 만을 사용하겠군요)
구조체가 차지하는 메모리는 확실히 줄어들겠지만,
일단 변수를 처리하는 코드보다 비트 단위 연산을 처리하는 코드가 더 길기 때문에
절대적으로 메모리가 더 적게 차지하는 것을 보장하는 것은 아니라고 알고 있습니다.
게다가 일반 변수에 접근하는 것보다 비트 필드에 접근하는 것이 더 느리기 때문에
속도 면에서도 큰 이득을 보지는 못합니다.
텍스트 포맷에 대한 자세한 정보
<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]
bit field였던 거 같습니다. 저도 기억이 잘 안나네요.. :-(
bit field였던 거 같습니다. 저도 기억이 잘 안나네요.. :-(
----
Let's shut up and code.
bit field 맞습니다.구조체 안의 변수 선언 뒤에 ": 숫자
bit field 맞습니다.
구조체 안의 변수 선언 뒤에 ": 숫자" 를 넣어주면
그 변수는 해당 숫자의 비트 크기 만큼의 메모리를 사용하겠다는 의미입니다.
(위의 경우 i 변수는 8 bit 만을 사용하겠군요)
구조체가 차지하는 메모리는 확실히 줄어들겠지만,
일단 변수를 처리하는 코드보다 비트 단위 연산을 처리하는 코드가 더 길기 때문에
절대적으로 메모리가 더 적게 차지하는 것을 보장하는 것은 아니라고 알고 있습니다.
게다가 일반 변수에 접근하는 것보다 비트 필드에 접근하는 것이 더 느리기 때문에
속도 면에서도 큰 이득을 보지는 못합니다.
댓글 달기