검색결과 리스트
alignof'에 해당되는 글 1건
- 2014.07.14 [C++11] alignof/alignas
SSE 등의 SIMD 명령이나 캐시를 의식한 프로그램은 메모리 얼라이먼트를 고려해야 한다.
메모리 얼라이먼트를 위해서 C++11 에서는 alignof와 alignas가 생겼다.
alignof: 변수나 타입의 얼라이먼트를 얻는다.
alignas: 변수 선언 때 얼라이먼트를 지정한다.
int main()
{
alignas(int) unsigned char c[32]; // 배열 C는 int의 사이즈 단위의 어드레스로 배치.
alignas(4) int a; // a는 4 바이트 단위의 어드레스로 배치
alignas(32) int array[8]; // array는 32바이트 단우의 어드레스로 배치
int int_align = alignof(int); // int의 얼라이먼트를 얻는다.
}
alignas와 alignof 기능은 C++11 이전에는 각 컴파일러 마다 확장 기능을 가지고 있었음.
VC의 경우 alignas는 __declspec(align(byte)), alignof는 __alignof(type)
댓글