Tôi đã điều sau đây:Misra-C lỗi trong cấu trúc mảng khởi
typedef struct
{
uint8_t BlockID;
uint32_t Copies;
uint16_t Size;
}NVMM_ConfigType;
const NVMM_ConfigType NvmmCnf_Layout[6] =
{
{ 1, 1, 4},
{ 2, 3, 4},
{ 5, 5, 16},
{ 10, 1, 4},
{ 11, 2, 32},
{ 13, 1, 100},
};
Mà dường như tốt với tôi, nhưng, Misra-C được đưa ra các lỗi sau:
Misra C: 2012 quy tắc 10.3 vi phạm: [R] Giá trị của một biểu thức không được gán cho một đối tượng có loại thiết yếu hẹp hơn hoặc loại danh mục cần thiết khác
Tôi đã cố gắng tìm ra lý do tại sao điều này xảy ra nhưng tôi có thể nhìn thấy nó. Ngoài ra các kết quả xây dựng được cản với lỗi này trên các tình huống tương tự và tôi không biết tại sao.
Có ai biết điều gì đang xảy ra không?
EDIT: Tôi cũng đã cố gắng đúc một cách rõ ràng tất cả các giá trị và vẫn nhận được lỗi tương tự:
const NVMM_ConfigType NvmmCnf_Layout[6] =
{
{ (uint8_t)1, (uint32_t)1, (uint16_t)4},
{ (uint8_t)2, (uint32_t)3, (uint16_t)4},
{ (uint8_t)5, (uint32_t)5, (uint16_t)16},
{ (uint8_t)10, (uint32_t)1, (uint16_t)4},
{ (uint8_t)11, (uint32_t)2, (uint16_t)32},
{ (uint8_t)13, (uint32_t)1, (uint16_t)100},
};
Tôi không thấy bất kỳ vấn đề ở đây ... chắc chắn không phải WRT R10.3. Dòng nào là lỗi chống lại? – Andrew
Vui lòng hiển thị phiên bản mã của bạn với loại phôi được tham chiếu trong nhận xét bên dưới, "Tôi cũng đã cố gắng truyền mọi giá trị nhưng vẫn gặp lỗi tương tự." –
@Andrew: Lỗi ở dấu ngoặc mở, lỗi ngay sau "=" – m4l490n