当前位置: 首页 > news >正文

MISRA C-2012准则之常量

目录

一、MISRA C简介

二、常量

1. 不要使用八进制常量

2. 无符号类型常量未加后缀

3. 使用小写 ‘l’ 作为后缀

4. 字符串赋给非字符常量指针的对象


 相关文章如下:

1、《MISRA C-2012准则之标准C环境准则

2、《MISRA C-2012准则之未使用的代码的处理

3、《MISRA C-2012准则之注释

4、《MISRA C-2012准则之标识符

5、《MISRA C-2012准则之常量

6、《MISRA C-2012准则之声明与定义

一、MISRA C简介

MISRA C是由汽车产业软件可靠性协会(MISRA)提出的C语言开发标准。其目的是在增进嵌入式系统的安全性及可移植性。

MISRA C一开始主要是针对汽车产业,不过其它产业也逐渐开始使用MISRA C:包括航天、电信、  国防、医疗设备、铁路等领域中都已有厂商使用MISRA C。

MISRA C的第一版是在1998年发行,一般称为MISRA-C:1998。在2004年时发行了第二版的MISRA C,称作MISRA-C:2004。2012年发布第三版,为当前最新有效的C语言规范版本,称为MISRA-C:2012。 MISRA C不能100%保证程序不出问题,但是能尽可能的预防,总结一下,基本上使用MISRA C具有以下五个维度的优势:

1、提升可靠性

2、提升可读性

3、提升可移植性

4、提升可维护性

5、提升安全性

二、常量

必需。不要使用八进制常量。

必需。所有以无符号类型表示的整型常量都应加上'u'或'U'后缀。

必需。小写字母'l'不应用于文字后缀。

必需。除非对象类型是指向字符常量的指针,否则字符串不应赋给对象。

1. 不要使用八进制常

#include <stdio.h>int main() {int octalValue = 077; // 错误:使用了八进制常量printf("Octal value: %d\n", octalValue);return 0;
}

2. 无符号类型常量未加后

#include <stdio.h>int main() {unsigned int uValue = 42; // 错误:未加 'u' 或 'U' 后缀printf("Unsigned value: %u\n", uValue);return 0;
}

3. 使用小写 ‘l’ 作为后

#include <stdio.h>int main() {long longValue = 123l; // 错误:使用了小写 'l' 作为后缀printf("Long value: %ld\n", longValue);return 0;
}

4. 字符串赋给非字符常量指针的对

#include <stdio.h>int main() {char str[10] = "Hello"; // 错误:字符串字面量赋给字符数组printf("%s\n", str);return 0;
}

http://www.dtcms.com/a/284758.html

相关文章:

  • 【Dv3Admin】传递数据实现查询功能
  • RISC-V和ARM有何区别?
  • 学习日志12 python
  • 云原生技术与应用-Kubernetes架构原理与集群环境部署
  • MySQL详解一
  • 【自用】JavaSE--集合框架(一)--Collection集合体系
  • AC7670模块日志的抓取
  • Redis7 底层数据结构解析
  • 【Elasticsearch】Elasticsearch 快照恢复 API 参数详解
  • SmartX 用户建云实践|富士康:基于榫卯企业云平台构建分布式云,支撑全球多地工厂重要产线
  • 百度搜索引擎蜘蛛IP地址段
  • 数据结构排序算法总结(C语言实现)
  • 低功耗、高性能和高度集成的SoC,32位MCU和各种外围IO芯片XL2417D
  • java常见算法合集
  • Easy ARM2132
  • 线程(三) linux 同步
  • windows内核研究(驱动开发 第一个驱动程序和调试环境搭建)
  • 人工智能概念之八:常见的参数调优方法(交叉验证网格搜索、随机优化、贝叶斯优化、Hyperband优化)
  • 如何优化transceiver芯片的供电
  • 进阶向:智能图像背景移除工具
  • 在CentOS7.9服务器上安装.NET 8.0 SDK
  • 嵌入式时钟系统
  • LLM探针技术有哪些
  • 【图像质量评价指标】图像熵(Image Entropy) —— 熵值饱和现象
  • PySide笔记之信号连接信号
  • AI赋能农业:基于YOLO11的苹果瑕疵检测系统实战分享
  • 在Anaconda Prompt中安装库【保姆教程】
  • lwIP WebSocket 客户端 TCP PCB 泄漏问题分析与解决
  • 时空大数据:数字时代的“时空罗盘“
  • 工业一体机在3C家电自动化生产中的实践