问题标签 [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.
misra - MISRA 2004:10.1/R 警告
这里,pos.x
是 int 类型。
c++ - C/C++ 条件返回语句
我正在研究嵌入式程序,在某些情况下,如果没有条件,我想尽快从函数中返回。如果我有以下代码并且我正在做嵌入式编程:
我的问题是,有多个返回语句是不是很糟糕?这是不好的做法吗?有没有更好的方法?MISRA 对此有什么说法吗?
注意:这个问题是嵌入式系统特有的,与 MISRA 有关,而不仅仅是 C/C++
谢谢...
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!
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?
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 兼容?
c - Misra 规则 19.7:像宏一样的功能
我有一个关于 Misra 规则 19.7 的警告:在下面一行中,应该优先使用函数而不是类似函数的宏:
我应该如何解决这个问题?
c - MISRA:有符号整数的按位运算
根据 MISRA 规则,我有此错误:可能无法对有符号整数执行按位运算。
我该如何解决这个错误?
c++ - 纯虚函数覆盖虚函数
假设给出以下代码。
类用纯-virtual 方法B
覆盖虚拟方法。这样做的目的可能是扩展在我们的案例类中不允许修改的现有类,但仍然有一个抽象类,它必须是一些其他类的基类。someMethod
A
B
根据MISRA-C++ 规则 10-3-3:代码分析器发出警告:纯虚函数覆盖非纯虚函数。
但我找不到有关警告的详细信息。上述代码的副作用是什么?这里有什么不好的做法?
更新:标准是 MISRA-C++ (C++98)
c - 指向字节数组的指针
由于 Misra C 的要求,我的一位同事想要使用指针声明时遇到了一些问题。Misra(安全关键指南)不会让我们单纯的程序员使用指针,而是让我们对数组字节进行操作。他打算获取一个指向字节数组的指针(所以我们不会在堆栈上传递实际的数组。)
调用函数看起来像;
但是,当在 Foo() 中访问 pu8Buffer 时,数组是错误的。显然没有通过它所期望的。数组在调用函数中是正确的,但在 Foo() 中不正确
我认为他创建了一个指向字节的指针数组,而不是指向字节数组的指针。
有人愿意澄清吗?Foo(&u8Payload, u16PayloadLen); 也不行。
c - 为什么标识符的前 31 个字符必须是唯一的?
MISRA 2004规则 5.1 规定所有标识符的前 31 个字符必须是唯一的。这个规则的原因是什么?这是某些编译器的技术限制吗?