Xof*_*ofo 3 c++ embedded heap-memory misra
MISRA C ++规则18-4-1说:
不得使用动态堆内存分配。
请参阅:http : //dist.sonarsource.com/reports/coverage/misra_c++_2008.html
根据此规则,std::stringMISRA C ++规则允许std::string这样做,因为当字符串变大时确实会分配内存。另外,什么样的课程std::stringstream呢?
不,托管std::string,std::stringstream将不被允许。而且,如果您是在嵌入式系统上编程的,则极不可能使用这些结构。嵌入式系统很少需要完整的标准库(尤其是像一样庞大而缓慢的库std::stringstream)及其附带的所有内容,包括RTTI,异常,动态内存分配等。
如果您使用某种类型的STL,则它将是手写的或专门针对嵌入式系统。而且,除非您正在编写操作系统内核,否则它们将使用静态内存分配器或其他策略而非动态分配。
因此,如果您在嵌入式系统中询问“我可以使用std :: stringstream”,则说明您已经从一个糟糕的前提出发,不应为安全关键型设备编写软件。
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |