首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >autosar c中的Vararg

autosar c中的Vararg
EN

Stack Overflow用户
提问于 2022-12-01 07:28:48
回答 1查看 56关注 0票数 0

允许在autosar C代码中使用varargs吗?如果没有,为什么?

我对autosar不熟悉。我找到这个文档是为了c++14,它说:

规则A8-4-1 (必需的、实现的、自动的)功能不应使用省略符号定义。

其理由是省略号符号绕过类型检查。建议使用可变模板、函数重载或函数调用链。

对于autosar c,我还没有找到任何关于varargs的规则。在c代码中有针对varargs的规则吗?有什么理由避免吗?有什么方法可以避免这种情况(我需要用字符串格式实现日志功能)?

EN

回答 1

Stack Overflow用户

发布于 2022-12-01 07:52:15

它也在米斯拉。米斯拉C是C,就像AutoSAR C++是C++。它提高了代码质量、安全性和安全性。C中的很多stdlib都是不安全的。但是,特别是没有变量参数的情况下,字符串要难得多。

我所做的(也是日志记录)是创建适合于特定情况下的日志记录的多个函数。一些事情,如log(text, int, int)log(text, binary data block, size)等,视需要而定。在这些函数中,有对单变量参数函数(通常为snprintf)的调用,它将所有内容打印到日志中。您不是完全兼容,但您是关闭的,变量参数的使用包含在单个特定的代码区域。如果您需要完全兼容,则代码是解耦的,并且易于更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74638282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档