《MISRA QAC2012》 8.5 Required Rule-5.6

8.5  Required Rule-5.6   A typedef name shall be a unique identifier
Amplification  

A typedef name shall be unique across all name spaces and translation units. Multiple declarations of the same typedef name are only permitted by this rule if the type definition is made in a header file and that header file is included in multiple source files.

Exception  

The typedef name may be the same as the structure, union or enumeration tag name associated with the typedef.

Implemented by QAC messages:  
1506 The identifier '%1s' is declared as a typedef and is used elsewhere for a different kind of declaration.
1507 '%1s' is used as a typedef for different types.
1508 The typedef '%1s' is declared in more than one location.
3448 Declaration of typedef '%s' is not in a header file although it is used in a definition or declaration with external linkage.

Typedef 应该定义在头文件里,被其他文件引用时,使用#include包含这个头文件

如果用Typedef 定义的变量声明具有外部链接属性的变量或者函数,应该把Typedef 放在头文件

复制代码
/*PRQA S 2017 ++*/

typedef int TYPE;         /* Message 3448 */
extern TYPE foo(void);    /* Message 3447 */ 

extern TYPE foo(void)
{
    return 1;
}
复制代码

 

posted @   清风oo  阅读(422)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2018-08-11 13. Roman to Integer
点击右上角即可分享
微信分享提示