how to resolve MISRA 10.3 violation?
37 ビュー (過去 30 日間)
古いコメントを表示
In my C project I have use
typedef unsigned char uint8;
uint8 arry[10];
arry[5] = 'E';
but i got an MISRA violation 10.3 as "The expression is assigned to an object with a different essential type category" how to resolve this violation
thanks in advance
1 件のコメント
David Sosa
2022 年 8 月 4 日
A "char" and a "uint8_t" have different essential type categories (see The MISRA Essential type model).
To solve your issue you need to have a "char arr[10]". Then the violation will go away.
回答 (1 件)
Anavi Somani
2023 年 7 月 10 日
You are giving an object of type uint8, an unsigned integer type, the value of the letter "E," which is a MISRA violation. According to MISRA C:2012 Rule 10.3, the assignment is not permitted since the character "E" belongs to a different essential type category than an unsigned integer.
There are a few options for dealing with this violation.
- One approach is to convert the object's type to a character type. To achieve this, declare the object as char rather than uint8.
- Use a cast to explicitly convert the value of the character to an unsigned integer.
typedef unsigned char uint8;
uint8 arry[10];
arry[5] = (uint8)'E';
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で MISRA C:2012 Directives and Rules についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!