alignas
-
바이트 정렬개발/C·C++ 2021. 9. 24. 18:15
바이트를 정렬할 때 윈도우에서는 __declspec(align(#))을 지원했지만 이는 언어 상의 표준은 아니었습니다. MS에서 지원해주는 거였죠. C++11부터는 표준으로 alignas를 사용할 수 있습니다. 다음에 적용할 수 있습니다. 클래스, 구조체, 공용체, 열거체의 선언이나 정의부 비트 필드가 아닌 데이터 멤버의 선언부 변수의 선언부(다만 함수의 파라미터와 함수의 예외 파라미터에는 사용할 수 없음 0을 넣는 것은 언제나 무시되고 자연스럽게 정렬된 정렬 값보다 작은 숫자 역시 무시됩니다. 위의 예제에서는 4 이상의 값을 넣어야 합니다. 표준이기 때문에 컴파일 타임에 오류를 잡아주지만, __declspec(align(#))을 사용하면 컴파일 과정에서 해당 정렬이 무시된다는 경고를 콘솔 창에 띄워줍니..