MISRA C

MISRA C是由汽车产业软件可靠性协会（MISRA）提出的C语言开发标准。其目的是在增进嵌入式系统的安全性及可移植性。针对C++语言也有对应的标准MISRA C++。
MISRA C一开始主要是针对汽车产业
，不过其他产业也逐渐开始使用MISRA C：包括航太、电信、国防、医疗设备、铁路等领域中都已有厂商使用MISRA C。
MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》是在1998年发行，一般称为MISRA-C:1998.。MISRA-C:1998有127项规则，规则从1号编号到127号，其中有93项是强制要求，其余的34项是推荐使用的规则。
在2004年时发行了第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》（或称作MISRA-C:2004），其中有许多重要建议事项的变更，其规则也重新编号。MISRA-C:2004有141项规则，其中121项是强制要求，其余的20项是推荐使用的规则。规则分为21类，从“开发环境”到“运行期错误”。

规则举例

MISRA C的一些规则是针对运算符的限制，例如MISRA-C:2004的规则12.10为“不要使用逗号运算符”，也可以用其他方式达到一样的效果。
动态分配内存功能是C语言的一大特色，可以在运行期依实际需求用malloc分配内存，在不使用此内存时再用free归还，但许多问题也和未正确处理动态分配内存功能有关，例如MISRA-C:2004的规则20.4为“不能使用动态堆的内存分配”，限制malloc、free等程序的使用。