packed_annotation_alignment 진단: Packed 정렬은 1, 2, 4, 8, 16바이트만 지원돼요
packed_annotation_alignment 진단: Packed 정렬은 1, 2, 4, 8, 16바이트만 지원돼요
@Packed 어노테이션은 괄호 안에 정렬 크기를 받아요. 그런데 이 값이 아무 숫자나 될 수는 없어요. Struct의 정렬은 1, 2, 4, 8, 16바이트 중 하나여야 해요. 그래서 예를 들어 @Packed(3)처럼 허용된 값이 아닌 숫자를 넘기면, Dart 분석기가 이 진단을 내보내요.
본문
설명
분석기는 Packed 어노테이션의 인자가 허용된 값(1, 2, 4, 8, 16) 중 하나가 아닐 때 이 진단을 만들어요.
예시
다음 코드는 Packed 어노테이션의 인자인 3이 허용된 값이 아니기 때문에 이 진단을 만들어요.
import 'dart:ffi';
@Packed(3)
final class C extends Struct {
external Pointer<Uint8> notEmpty;
}
흔한 해결 방법
정렬 값을 허용된 값 중 하나로 바꿔요. 아래 코드는 4로 변경한 모습이에요.
import 'dart:ffi';
@Packed(4)
final class C extends Struct {
external Pointer<Uint8> notEmpty;
}