extra_size_annotation_carray
extra_size_annotation_carray
Struct 하위 클래스의 필드 중 네이티브 배열의 크기를 나타내는 Array 어노테이션은 정확히 하나만 있어야 해요. 배열 크기 어노테이션이 두 개 이상 붙으면 이 진단이 발생하는 거예요.
본문
설명
analyzer는 Struct 하위 클래스의 필드가 네이티브 배열의 크기를 나타내는 어노테이션을 한 개보다 많이 가질 때 이 진단을 내보내요. FFI에 대한 자세한 내용은 dart:ffi를 사용한 C 연동(C interop) 문서를 참고해 주세요.
예시
아래 코드는 필드 a0가 네이티브 배열의 크기를 지정하는 어노테이션 두 개를 갖고 있어서 이 진단이 발생해요.
import 'dart:ffi';
final class C extends Struct {
@Array(4)
@Array(8)
external Array<Uint8> a0;
}
흔한 해결 방법
어노테이션을 하나만 남기고 나머지는 제거하면 돼요.
import 'dart:ffi';
final class C extends Struct {
@Array(8)
external Array<Uint8> a0;
}
더 알아보기
Array어노테이션으로 네이티브 배열의 크기를 정해 주면, 그 만큼의 메모리가Struct에 반영돼요. 배열 크기는 어노테이션 하나로 명확하게 지정해 주세요.