C++/데이터 정렬에 대해

Full text search for "데이터 정렬"


Display context of search results
Case-sensitive searching
  • C++/데이터 정렬에 대해 . . . . 13 matches
         #keywords C++,데이터 정렬
         {{{+1 데이터 정렬(Data Alignment) }}}
         그리고 자주 사용되는 데이터를 프로세서의 캐시 라인 크기에 맞추면 효율적으로 캐시된다. 이런 이유에서 컴파일러는 가능하면 캐시 라인 크기에 맞도록 메모리 상에 데이터를 적재한다. 이것이 프로그래밍에서 말하는 데이터 정렬이다.
         {{{+1 C++의 데이터 정렬 }}}
         C++ 컴파일러는 기본적으로 데이터 블록의 크기에 기반해 데이터를 정렬한다. 데이터 정렬 크기는 1부터 8192(바이트) 까지의 2의 승수, 즉 2, 4, 8, 16, 32, 64 등을 가질 수 있다. 데이터 정렬 크기가 정해지는 방법은 가능하면 가장 작은 크기로 정해진다. 즉, 4 바이트 int는 가능한 가장 작은 정렬 크기인 4 바이트 정렬을 한다(뒤에 보다 자세히 설명).
         컴파일러의 데이터 정렬을 변경하려면 다음 지시어를 사용한다.
         {{{+1 데이터 정렬 크기가 결정되는 방법 }}}
         이 경우 struct A 멤버들의 크기는 2 + 1 + 4 + 4 = 11 이고 4 바이트 데이터 정렬이 적용되어 크기는 12가 된다. 컴파일러는 모든 타입의 크기를 알고 있기 때문에 컴파일 중에 구조체 안의 가장 큰 타입의 크기에 의해(항상 보장하지는 않는다. 하지만 일반적으로 그렇다.) 데이터 정렬 크기가 정해진다. 이 경우 int의 4 바이트로 정렬되었다.
         데이터 정렬 크기를 변경할 때 MS VC++과 gcc 등 컴파일러마다 데이터 정렬 방식이 다르는 점을 알아둬야 한다. 그 차이는 다음과 같다.
         VC++는 비트필드 사용에 상관 없이 멤버들의 자료형 내에서 데이터 정렬 크기가 결정되고 gcc는 비트필드의 합이 8비트 이하면 1 바이트가 된다.
  • Blog/2014-09 . . . . 1 match
         ["C++/데이터 정렬에 대해"]
  • C++ . . . . 1 match
         ["/데이터 정렬에 대해"]
  • FrontPage . . . . 1 match
          <li><a href="/moniwiki/wiki.php/C++/데이터%20정렬에%20대해">C++/데이터 정렬에 대해</a><span class="doc-date">September 18, 2014</span></li>
  • LocalKeywords . . . . 1 match
         C++ "데이터 정렬"
Found 5 matching pages out of 1230 total pages (0 pages are searched)

You can also click here to search title.