首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MISRA C: 2004规则5.5 (建议):不应重用具有静态存储持续时间的对象或函数标识符

MISRA C: 2004规则5.5 (建议)是MISRA C编码规范中的一条规则,它建议不应重用具有静态存储持续时间的对象或函数标识符。

具有静态存储持续时间的对象是指在程序执行期间一直存在的对象,例如全局变量、静态变量等。而函数标识符则是指函数的名称。

这条规则的目的是为了避免在程序中重用具有静态存储持续时间的对象或函数标识符,以减少潜在的错误和不确定性。

重用具有静态存储持续时间的对象或函数标识符可能导致以下问题:

  1. 可能会引入意外的副作用:由于这些对象或函数在程序执行期间一直存在,重用它们可能会导致意外的副作用,影响程序的正确性和可预测性。
  2. 可能会导致命名冲突:如果重用具有静态存储持续时间的对象或函数标识符,可能会导致命名冲突,使得代码难以理解和维护。
  3. 可能会导致不可预测的行为:重用具有静态存储持续时间的对象或函数标识符可能会导致不可预测的行为,因为这些对象或函数的状态可能在不同的上下文中发生变化。

为了遵守这条规则,开发人员可以采取以下措施:

  1. 避免重用具有静态存储持续时间的对象或函数标识符,尽量使用局部变量和函数参数来传递数据。
  2. 使用有意义的命名来避免命名冲突,并提高代码的可读性和可维护性。
  3. 在编码过程中,进行严格的代码审查和测试,以确保不会意外地重用具有静态存储持续时间的对象或函数标识符。

腾讯云相关产品和产品介绍链接地址:

腾讯云提供了丰富的云计算产品和服务,包括云服务器、云数据库、云存储、人工智能等。以下是一些相关产品和介绍链接:

  1. 云服务器(ECS):提供弹性计算能力,支持多种操作系统和应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  2. 云数据库(CDB):提供高可用、可扩展的数据库服务,支持多种数据库引擎。详情请参考:https://cloud.tencent.com/product/cdb
  3. 云存储(COS):提供安全可靠的对象存储服务,适用于各种数据存储和分发场景。详情请参考:https://cloud.tencent.com/product/cos
  4. 人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

嵌入式软件静态解析工具-CasePlayer2

嵌入式软件静态解析工具-CasePlayer2 CasePlayer2 : 嵌入式软件说明书制作及解析工具 静态解析C/C++源代码自动生成流程图等文件 适用于各种嵌入式微机用汇编代码 具有符合编程标准...[制作说明书] ・流程图・模块(函数)说明书・模块结构图・模块(函数)表・structure说明书,structure表 根据静态解析功能,生成外部变量对照表,typedef表,各种参照表 具有通过静态分析制作外部变量表和外部变量对照情报表功能...具有[MISRA-C]规范检查功能,符合MISRA-C1998、MISRA-C2004标准 MISRA-CMISRA(Motor Industry Software Reliability Association...[主要功能] ●MISRA-C 1998 : 能够对127项规范中124项进行错误检查 ●MISRA-C 2004 : 能够对141項规范中138项进行错误检查 ●点击HELP可以阅览规范解说,...・class参照表・成员函数参照表 (←V5.0之后) ●ANSI C言語、嵌入式C语言(非ANSI)、以及汇编 ●「MISRA-C规范检查功能符合MISRA-1998、MISRA-2004标准 ●

1.6K00

嵌入式软件静态解析工具

具有符合编程标准MISRA-C 1998/2004规范检查功能,Code Metrics计测功能 适用于掌握以往程序内容,审阅会议时评估程序等,有利于改善软件质量工具 产品概要 1.JPG...4.JPG 具有通过静态分析制作外部变量表和外部变量对照情报表功能。...具有[MISRA-C]规范检查功能,符合MISRA-C1998、MISRA-C2004标准 7.JPG MISRA-CMISRA(Motor Industry Software Reliability...[主要功能] ●MISRA-C 1998 : 能够对127项规范中124项进行错误检查 ●MISRA-C 2004 : 能够对141項规范中138项进行错误检查 ●点击HELP可以阅览规范解说,...・class参照表・成员函数参照表 (←V5.0之后) ●ANSI C言語、嵌入式C语言(非ANSI)、以及汇编 ●「MISRA-C规范检查功能符合MISRA-1998、MISRA-2004标准 ●

1K20
  • 号外号外:无规矩不成方圆

    ,许多软件质量度量工具都支持MISRA 规则,所以我们来学习下MISRA规则,提升你嵌入式软件设计逼格。...每条规则都被分类成“强制”(required)建议”(advisory )所有强制规则具有同等重要性,所有建议规则也如此。...要说明是,“建议”不意味着可以忽略这些规则,而是应该遵守直至合理实现。 首先来看看对开发环境几条使用规则要求 不能有对未定义行为未指定行为依赖性。...例如:栈使用、参数传递和数据值存储方式(长度、排列、别名、覆盖,等等)。 编译器/ 链接器要确保31 个有效字符和大小写敏感能被外部标识符支持。...ISO 标准要求外部标识符头6 个字符是截然不同。然而由于大多数编译器/ 链接器允许至少31个有效字符(如同内部标识符),因此对这样严格而并不具有帮助性限制适应性被认为是不必要

    73370

    号外号外:无规矩不成方圆(4)

    使用标识符名称要注意一个相关问题是发生在名称之间只有一个字符少数字符不同情况,特别是名称比较长时,当名称间区别很容易被误读时问题就比较显著,比如 1(数字 1)和 l( L 小写)、0 和 O...建议名称间区别要显而易见。 具有内部作用域标识符不应使用与具有外部作用域标识符相同名称,这会隐藏了外部标识符。 外部作用域和内部作用域定义如下。...文件范围内标识符可以看做是具有最外部( outermost)作用域;块范围内标识符看做是具有更内部( more inner)作用域;连续嵌套块,其作用域更深入。...本规则只是不允许一个第二深层( second inner)定义隐藏其外层定义,如果第二个定义没有隐藏第一个定义,那么就不算违反本规则。...其他跟代码相关规则,可以在具体工程中,打开MISRA规则验证分析代码时候,对应代码看规则,印象会比较深刻。在这里就不赘述了。建议大家查看最新规则。这个系列到这里就结束了,欢迎各位关注

    52550

    自动化检测工具助力GJB 8114-2013 CC++语言编程安全子集标准落地应用

    +语言编程安全子集》,提出软件编程标准,以提高国家军用软件安全性,并作为静态规则检查依据。...,其中CC++共用强制准则共124条,C++专用强制准则28条,CC++共用建议准则41条,C++专用建议准则11条。...编程规范标准落实,一方面可以使代码开发人员在编程过程中遵守规则,从而保证代码可理解性和可维护性;另一方面也可以让测试人员按照规则来检查代码,及时发现代码问题。...如果评测目的不仅仅是满足GJB 8114标准,则可以借助CoBOT中超过1000个CC++检测器,包括MISRA 2004MISRA 2008、MISRA 2012、ISO 17961、CWE、OWASP...所属缺陷:给变量赋值与其类型不一致 缺陷发生位置:在gd.c中zif_imagecopymergegray函数第3703行。

    2.4K40

    代码质量规则

    CA1012:抽象类型不应具有构造函数 抽象类型构造函数只能由派生类型调用。 由于公共构造函数用于创建类型实例,但无法为抽象类型创建实例,因此具有公共构造函数抽象类在设计上是错误。...CA1052:应密封静态容器类型 公共受保护类型仅包含静态成员,而且没有用 sealed(C# 参考)(NotInheritable) 修饰符声明该类型。...应使用 sealed 修饰符标记不希望被继承类型,以免将其用作基类型。 CA1053:静态容器类型不应具有构造函数 公共嵌套公共类型只声明了静态成员,但具有公共受保护默认构造函数。...重命名移除成员是一项重大更改。 CA1707:标识符不应包含下划线 按照约定,标识符名称不包含下划线 (_) 字符。 该规则将检查命名空间、类型、成员和参数。...CA2207:以内联方式初始化值类型静态字段 某值类型声明了显式静态构造函数。 要修复与该规则冲突,请在声明它时初始化所有静态数据并移除静态构造函数

    2.1K30

    滚雪球学Java(05):了解Java编程基础:关键字、标识符和命名规范

    package包static静态成员super父类this当前对象throw抛出异常Java标识符  Java 中标识符是指用于命名变量、常量、方法、类、接口等名称。...Java 标识符需要符合一定规则,具体如下:标识符可以包含字母、数字、下划线、美元符号等字符;标识符必须以字母、下划线美元符号开头;标识符不能使用 Java 中关键字;标识符不区分大小写。...总结  Java关键字是指在语言中具有特定含义和用途保留单词,这些单词不能作为标识符变量名来使用。比如:public、class、static等。  ...Java标识符是指程序中使用自定义名称,包括变量名、方法名、类名等。标识符需要遵循一定命名规则,例如必须以字母、下划线美元符号开头,不能使用关键字保留字符等。  ...Java命名规范是指在Java代码编写中应该遵循命名规则。这些规则旨在提高代码可读性、可维护性和可重用性。

    13421

    号外号外:无规矩不成方圆(2)

    本文所有MISRA规则由嵌入式程序猿整理自网络,版权归原作者所有。 语言扩展规则 规则2.1(强制): 汇编语言应该被封装并隔离。...在需要使用汇编指令地方,建议以如下方式封装并隔离这些指令: (a) 汇编函数 (b) C函数 (c) 宏。 出于效率考虑,有时必须要嵌入一些简单汇编指令,如开关中断。...这条规则最容易犯错,很多程序员在注释时候喜欢用//,建议大家还是用/*…*/ 这排除了如 // 这样C99 类型注释和C++ 类型注释,因为它在C90 中是不允许。...这不仅是类型问题,因为不同编译器(在C99之前)可能会有不同行为。 规则2.3(强制): 字符序列 /* 不应出现在注释中。 C 不支持注释嵌套,尽管一些编译器支持它以做为语言扩展。...一段注释以/* 开头,直到第一个*/ 为止,在这当中出现任何/* 都违反了本规则规则2.4(建议): 代码段不应被“注释掉”(comment out )。

    48480

    设计规则

    CA1012:抽象类型不应具有构造函数 抽象类型构造函数只能由派生类型调用。 由于公共构造函数用于创建类型实例,但无法为抽象类型创建实例,因此具有公共构造函数抽象类在设计上是错误。...默认情况下,System.Int32 数据类型用于存储常量值。 虽然你可以更改此基础类型,但对于大多数情况,既不需要,也不建议你这样做。...CA1052:应密封静态容器类型 公共受保护类型仅包含静态成员,而且没有用 sealed (C#) NotInheritable (Visual Basic) 修饰符声明该类型。...应使用 sealed 修饰符标记不希望被继承类型,以免将其用作基类型。 CA1053:静态容器类型不应具有构造函数 公共嵌套公共类型只声明了静态成员,但具有公共受保护默认构造函数。...由于调用静态成员不需要类型示例,因此没必要使用构造函数。 为安全起见,字符串重载应使用字符串自变量调用统一资源标识符 (URI) 重载。

    2K20

    JAVA学习(2)-全网最详细~

    这是因为double类型被设计用来存储双精度浮点数,这种类型具有更高精度和范围,需要更多内存空间来存储。...E. chocolate - 这完全符合标识符规则,是一个有效标识符。...只有当大写字母是较大单词一部分时,才允许使用大写字母,例如“Radius”。名称不应包含特殊字符数字,下划线“_”除外。 --->选A和D 在Java中,全部字母大写通常用来定义常量。...常量声明方式为: public static final 数据类型 常量名 = 值; 其中,public表示常量可以被任何类访问; static表示常量是静态,它属于类而不是对象; final表示该常量值不可修改...因此,选项A和B都是正确。选项C和D则存在错误,因为width变量没有被声明初始化。

    14610

    JAVA学习(2)-全网最详细~

    这是因为double类型被设计用来存储双精度浮点数,这种类型具有更高精度和范围,需要更多内存空间来存储。...E. chocolate - 这完全符合标识符规则,是一个有效标识符。...只有当大写字母是较大单词一部分时,才允许使用大写字母,例如“Radius”。名称不应包含特殊字符数字,下划线“_”除外。 --->选A和D 在Java中,全部字母大写通常用来定义常量。...常量声明方式为: public static final 数据类型 常量名 = 值; 其中,public表示常量可以被任何类访问; static表示常量是静态,它属于类而不是对象; final表示该常量值不可修改...因此,选项A和B都是正确。选项C和D则存在错误,因为width变量没有被声明初始化。

    14810

    DDD Command模型

    不应该按顺序生成标识符,因为使用顺序标识符会大大降低应用程序可伸缩性,使用UUID会使得发生冲突机会非常小。...注释可以放在字段访问器方法(例如getter)上。      创建Aggregate实例命令不需要标识目标集合标识符,但建议也在其上注解Aggregate标识符。...注意:当@CommandHandler注释放置在一个Aggregate构造函数中时,相应命令将创建该聚合一个新实例并将其添加到存储库。这些命令不需要定位特定聚合实例。...Command Handler对象是一个简单(常规)对象具有@CommandHandler注释方法。...命令意图不应该是获取值,因为这将表明该消息应该被设计为查询消息。 命令返回结果典型情况是新建实体标识符

    2.5K30

    号外号外:无规矩不成方圆(3)

    本文MISRA规则由嵌入式程序猿整理自网络,版权归原作者所有 今天我们来讲讲MISRA对文档规则要求; 所有实现定义(implementation-defined)行为使用都应该文档化。...这是在使用了规则 6.4 和规则 6.5 中描述非良好定义位域时遇到特定问题。 C 当中位域是该语言中最缺乏良好定义部分之一。...为了访问用于节省存储空间而打包标志( flags)其他短型( short-length)数据。为了有效利用存储空间而做短型数据打包,是本文档所设想唯一可接受位域使用。...假定结构元素只能以其名字来访问,那么程序员就无需设想结构体中位域存储方式。我们建议结构声明要保持位域设置,并且在同一个结构中不得包含其他任何数据。...产品代码中使用所有库都要适应本文档给出要求,并且要经过适当验证。 本规则对象是产品代码中任意库,因此这些库可能包含编译器提供标准库、其他第三方库或者实验室中自己开发库。

    657110

    Transact-SQL基础

    在 SQL Server 中,某些位于标识符开头位置符号具有特殊意义。以 at 符号开头常规标识符始终表示局部变量参数,并且不能用作任何其他类型对象名称。...以一个数字符号开头标识符表示临时表过程。以两个数字符号 (##) 开头标识符表示全局临时对象。虽然数字符号两个数字符号字符可用作其他类型对象开头,但是不建议这样做。...2.3 Transact-SQL 数据类型 包含数据对象都有一个相关联数据类型,它定义对象所能包含数据种类,例如字符、整数二进制。下列对象具有数据类型: 表和视图中列。 存储过程中参数。...返回一个多个特定数据类型数据值 Transact-SQL 函数具有返回代码(始终为 integer 数据类型)存储过程。 为对象分配数据类型时可以为对象定义四个属性: 对象包含数据种类。...当组合比较两个具有不同排序规则 char varchar 值时,根据排序规则优先规则来确定操作所使用排序规则。 字符常量必须包括在单引号 (') 双引号 (") 中。

    3.4K20

    西门子发布《TIA程序设计规范指南》

    目标 《TIA程序设计规范指南》中描述规则建议可以帮助您创建一个统一、可维护和可重用程序代码。特别在多个开发人员共同开发情况下, 建议规定项目范围内术语以及统一编程风格。...本文件还适用于软件单元,文件夹,组,组织块(OB),函数(FC),函数块(FB),工 艺对象(TO),数据块(DB),PLC 数据类型(UDT),变量,常量,PLC 消息文本列 表,监视表,强制表以及外部源...NF007 规则:使用前缀 NF008 规则:用大写字母表示常量标识符 NF009 规则:限制标识符字符集 NF010 建议:限制标识符长度 NF011 建议:每个标识符仅使用一个缩写...RU006 规则:程序完全符号化 RU007 建议:独立于硬件编程 RU008 建议:使用模板 引用对象(分配) AL001 规则:使用多重实例而不是单个实例 AL002...建议:避免形参 “mode” PE006 建议:首选临时变量 PE007 建议:将重要测试变量声明为静态 PE008 建议:将控制/索引变量声明为“DInt” PE009

    1.4K50

    【第五篇】SAP ABAP7.5x新语法之命名规约

    继续了解SAP ABAP7.5x系列新语法 命名约定 以下约定适用于ABAP程序中所有可定义对象名称,例如数据类型,数据对象,类,宏存储过程: 1、名称最长可达30个字符。...5、预定义ABAP类型预定义数据对象名称不能用于数据类型数据对象。 6、实际上并未禁止使用为ABAP字等保留ID 以用于自定义定义,但强烈建议不要这样做。...程序内名称规则 程序内部名称描述在程序中声明实体,在程序中调用由其他程序调用。典型示例包括数据类型和数据对象标识符以及方法和方法接口参数。...数据声明 1、g_用于全局数据对象 2、l_用于隐藏静态属性本地数据对象 3、i_用于IMPORTING参数 4、e_用于EXPORTING参数 5、c_用于CHANGING参数 6、r_用于RETURNING...此规则例外情况是名称含义绝对清楚情况,例如,辅助变量声明: DATA i TYPE i. 但是,绝不应该是数据对象具有不是对象类型数据类型名称: DATA i TYPE f.

    1.3K40

    【第五篇】SAP ABAP7.5x新语法之命名规约

    命名约定 以下约定适用于ABAP程序中所有可定义对象名称,例如数据类型,数据对象,类,宏存储过程: 1、名称最长可达30个字符。...5、预定义ABAP类型预定义数据对象名称不能用于数据类型数据对象。 6、实际上并未禁止使用为ABAP字等保留ID 以用于自定义定义,但强烈建议不要这样做。...程序内名称规则 程序内部名称描述在程序中声明实体,在程序中调用由其他程序调用。典型示例包括数据类型和数据对象标识符以及方法和方法接口参数。...数据声明 1、g_用于全局数据对象 2、l_用于隐藏静态属性本地数据对象 3、i_用于IMPORTING参数 4、e_用于EXPORTING参数 5、c_用于CHANGING参数 6、r_用于RETURNING...此规则例外情况是名称含义绝对清楚情况,例如,辅助变量声明: DATA i TYPE i. 但是,绝不应该是数据对象具有不是对象类型数据类型名称: DATA i TYPE f.

    1.1K40
    领券