问题标签 [misra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
281 浏览

misra - MISRA 2004:10.1/R 警告

这里,pos.x是 int 类型。

0 投票
5 回答
11349 浏览

c++ - C/C++ 条件返回语句

我正在研究嵌入式程序,在某些情况下,如果没有条件,我想尽快从函数中返回。如果我有以下代码并且我正在做嵌入式编程:

我的问题是,有多个返回语句是不是很糟糕?这是不好的做法吗?有没有更好的方法?MISRA 对此有什么说法吗?

注意:这个问题是嵌入式系统特有的,与 MISRA 有关,而不仅仅是 C/C++

谢谢...

0 投票
1 回答
566 浏览

c++ - Does nested switch case comply to the MISRA C++ 2008 rules?

I wanted to use nested switch case in my code, for example:

Thank You!

0 投票
1 回答
682 浏览

c++ - 如何在不违反 MISRA C++ 2008 咨询规则 14-8-2 的情况下创建 std::shared_ptr?

我在 PC-Lint (au-misra-cpp.lnt) 中收到此错误:

ParameterTest.cpp(40):错误 1963:(注意——违反 MISRA C++ 2008 咨询规则 14-8-2,可行集包含函数和模板:std::shared_ptr::shared_ptr(第 499 行,文件 C:\Program文件 (x86)\Microsoft Visual Studio 11.0\VC\include\memory,模块 Parameter.cpp),std::shared_ptr::shared_ptr(第 485 行,文件 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ include\memory, module Parameter.cpp)) C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\memory(499):错误 830:(信息 -- 先前消息中引用的位置)std::shared_ptr信息(信息指针);

在此代码上:

我尝试以不同的方式编写代码,但找不到不给出上述错误的方法。

是否可以使代码符合 MISRA?

0 投票
3 回答
1132 浏览

c++ - 如何在不违反 MISRA C++ 2008 咨询规则 5-2-10 的情况下使用 std::transform?

我在 PC-Lint (au-misra-cpp.lnt) 中收到这些错误:

ConverterUtil.cpp(90):错误 864:(信息——涉及变量“transformValue”的表达式可能取决于评估顺序 [ MISRA C++ 规则 5-2-10 ])

ConverterUtil.cpp(90):错误 864:(信息——涉及变量“transformValue”的表达式可能取决于评估顺序 [ MISRA C++ 规则 5-2-10 ])

ConverterUtil.cpp(90): 错误 534: (警告 -- 忽略函数 'std::transform(std::_String_iterator>>, std::_String_iterator>>, std::_String_iterator>>, int (*) (int))'(与第 998 行比较,文件 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\algorithm)[MISRA C++ 规则 0-1-7 和 8-4-6],[ MISRA C++ 规则 0-3-2])

在此代码上:

我猜它不喜欢我在转换中使用相同的 std::string 作为输入和输出的事实,但是使用另一个字符串作为输出会给出相同的错误。

是否可以使 std::transform MISRA 兼容?

0 投票
2 回答
5327 浏览

c - Misra 规则 19.7:像宏一样的功能

我有一个关于 Misra 规则 19.7 的警告:在下面一行中,应该优先使用函数而不是类似函数的宏:

我应该如何解决这个问题?

0 投票
6 回答
2869 浏览

c - MISRA:有符号整数的按位运算

根据 MISRA 规则,我有此错误:可能无法对有符号整数执行按位运算。

我该如何解决这个错误?

0 投票
2 回答
702 浏览

c++ - 纯虚函数覆盖虚函数

假设给出以下代码。

类用-virtual 方法B覆盖虚拟方法。这样做的目的可能是扩展在我们的案例类中不允许修改的现有类,但仍然有一个抽象类,它必须是一些其他类的基类。someMethodAB

根据MISRA-C++ 规则 10-3-3:代码分析器发出警告:纯虚函数覆盖非纯虚函数。

但我找不到有关警告的详细信息。上述代码的副作用是什么?这里有什么不好的做法?


更新:标准是 MISRA-C++ (C++98)

0 投票
2 回答
3426 浏览

c - 指向字节数组的指针

由于 Misra C 的要求,我的一位同事想要使用指针声明时遇到了一些问题。Misra(安全关键指南)不会让我们单纯的程序员使用指针,而是让我们对数组字节进行操作。他打算获取一个指向字节数组的指针(所以我们不会在堆栈上传递实际的数组。)

调用函数看起来像;

但是,当在 Foo() 中访问 pu8Buffer 时,数组是错误的。显然没有通过它所期望的。数组在调用函数中是正确的,但在 Foo() 中不正确

我认为他创建了一个指向字节的指针数组,而不是指向字节数组的指针。

有人愿意澄清吗?Foo(&u8Payload, u16PayloadLen); 也不行。

0 投票
2 回答
7794 浏览

c - 为什么标识符的前 31 个字符必须是唯一的?

MISRA 2004规则 5.1 规定所有标识符的前 31 个字符必须是唯一的。这个规则的原因是什么?这是某些编译器的技术限制吗?