gpt4 book ai didi

c - 使用 stringify 运算符 '#' MISRA Rule 20.10 (MISRA C :2012) . 实现 stringify 宏的替代方法是什么

转载 作者:行者123 更新时间:2023-12-02 18:19:03 27 4
gpt4 key购买 nike

MISRA 标准不允许在宏定义中使用字符串化运算符在不使用 # 运算符的情况下实现相同概念的替代方法是什么?

最佳答案

实际上并没有任何直接的替代方案——只有变通办法。此建议规则与建议不要使用类似函数的宏的建议指令 4.9 具有相同的性质。

一个人可以(而且可能必须)偏离这些规则/指令,但关键是这样做必须是一个明智的选择。我们应该尽量减少使用这些宏,并且只将它们用作最后​​的手段。您需要激励为什么使用特定的类似函数的宏或字符串化使代码更安全

并且不仅仅是一些反对代码重复的模糊论据——代码重复的治疗永远不应该比它试图治愈的疾病更糟糕。例如,即使在普通的 C 项目中,通过发明一些特定于项目的宏语言来试图变得“聪明”也是完全 Not Acceptable - 因此自然也不应该在关键任务项目中这样做。

另一方面,诸如寄存器映射定义等的东西通常是用类似函数的宏来实现的,这也是偏离的原因。还有更复杂的情况也可能需要偏差,只要你能证明它是合理的。

关于c - 使用 stringify 运算符 '#' MISRA Rule 20.10 (MISRA C :2012) . 实现 stringify 宏的替代方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71109404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com