<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MISRA_C</id>
	<title>MISRA C - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MISRA_C"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MISRA_C&amp;action=history"/>
	<updated>2026-07-16T20:52:30Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MISRA_C&amp;diff=1756520&amp;oldid=prev</id>
		<title>imported&gt;Ohtashinichiro 来自 2026年5月13日 (三) 23:41</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MISRA_C&amp;diff=1756520&amp;oldid=prev"/>
		<updated>2026-05-13T23:41:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;MISRA C&amp;#039;&amp;#039;&amp;#039;是由{{link-en|汽車產業軟體可靠性協會|Motor Industry Software Reliability Association}}（MISRA）提出的[[C語言]]開發標準。其目的是在增進[[嵌入式系統]]的安全性及[[軟體可移植性|可移植性]]。針對[[C++]]語言也有對應的標準[[MISRA C++]]。&lt;br /&gt;
&lt;br /&gt;
MISRA C一開始主要是針對汽車產業&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
 |url          = http://www.eettaiwan.com/ART_8800416280_676964_NT_ad4f399b.HTM&lt;br /&gt;
 |language     = 中文&lt;br /&gt;
 |title        = 確保嵌入式系統的網路安全性&lt;br /&gt;
 |publisher    = 電子工程專輯&lt;br /&gt;
 |date         = 2006-04-28&lt;br /&gt;
 |accessdate   = 2012-04-24&lt;br /&gt;
 |archive-url  = https://web.archive.org/web/20131004221120/http://www.eettaiwan.com/ART_8800416280_676964_NT_ad4f399b.HTM&lt;br /&gt;
 |archive-date = 2013-10-04&lt;br /&gt;
 |dead-url     = yes&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
，不過其他產業也逐漸開始使用MISRA C：包括航空、電信、國防、醫療設備、鐵路等領域中都已有廠商使用MISRA C。&amp;lt;ref&amp;gt;{{Cite web |url=http://www.cosmicsoftware.com/misra.php |title=存档副本 |access-date=2012-04-24 |archive-url=https://web.archive.org/web/20120212045417/http://www.cosmicsoftware.com/misra.php |archive-date=2012-02-12 |dead-url=yes }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://www.ldra.com/misrac.asp |title=存档副本 |accessdate=2012-04-24 |archive-date=2012-03-17 |archive-url=https://web.archive.org/web/20120317190208/http://www.ldra.com/misrac.asp |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》在1998年發行，一般稱為MISRA-C:1998.&amp;lt;ref&amp;gt;{{Cite web |url=http://www.misra-c.com/Activities/MISRAC/tabid/160/Default.aspx |title=A brief history of MISRA C |accessdate=2012-04-24 |archive-date=2017-06-07 |archive-url=https://web.archive.org/web/20170607124934/https://www.misra-c.com/Activities/MISRAC/tabid/160/Default.aspx |dead-url=no }}&amp;lt;/ref&amp;gt;。MISRA-C:1998有127項規則，規則從1號編號到127號，其中有93項是強制要求，其餘的34項是推薦使用的規則。&lt;br /&gt;
&lt;br /&gt;
在2004年時發行了第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》（或稱作MISRA-C:2004），其中有許多重要建議事項的變更，其規則也重新編號。MISRA-C:2004有141項規則，其中121項是強制要求，其餘的20項是推薦使用的規則。規則分為21類，從「開發環境」到「運行期錯誤」&amp;lt;ref&amp;gt;[http://eetimes.com/discussion/beginner-s-corner/4023981/Introduction-to-MISRA-C {{Wayback|url=http://eetimes.com/discussion/beginner-s-corner/4023981/Introduction-to-MISRA-C |date=20120813183716 }} Introduction-to-MISRA-C&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==規則舉例==&lt;br /&gt;
&lt;br /&gt;
MISRA C的一些規則是針對運算符的限制，例如MISRA-C:2004的規則12.10為「不要使用逗号运算符」，也可以用其他方式達到一樣的效果。&lt;br /&gt;
&lt;br /&gt;
[[C动态内存分配|動態分配記憶體]]功能是C語言的一大特色，可以在運行期依實際需求用malloc分配記憶體，在不使用此記憶體時再用free歸還，但許多問題也和未正確處理動態分配記憶體功能有關，例如MISRA-C:2004的規則20.4為「不能使用动态堆的内存分配」，限制malloc、free等程序的使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C語言 程式碼 &amp;lt;U&amp;gt;&amp;#039;&amp;#039;if (x = y)&amp;#039;&amp;#039;&amp;lt;/U&amp;gt; 是完全合法且有效的 C語言 語句，但很可能是由於意外使用賦值運算子(=)而不是相等運算子(==)而導致的鍵入錯誤。&lt;br /&gt;
規則 8.18.2 表示 不應使用賦值運算子的結果，以確保報告此類程式碼並審查其正確性。&lt;br /&gt;
&lt;br /&gt;
==工具==&lt;br /&gt;
有許多工具聲稱可以檢查代碼和MISRA規則相容性，不過MISRA沒有相關認證的程序&amp;lt;ref&amp;gt;{{Cite web |url=http://www.misra-c.com/MISRACFAQ/tabid/168/Default.aspx |title=faqs |accessdate=2012-04-24 |archive-date=2017-07-06 |archive-url=https://web.archive.org/web/20170706172941/https://www.misra-c.com/MISRACFAQ/tabid/168/Default.aspx |dead-url=no }}&amp;lt;/ref&amp;gt;。相關工具可以幫助使用者評估和比較檢查的結果，也會提供一些可符合MISRA-C規定的指南。&lt;br /&gt;
&lt;br /&gt;
大部份的規定可以用支援[[靜態代碼分析]]的工具檢查，有些規定需要用支援{{le|動態代碼分析|Dynamic program analysis}}的工具檢查。&lt;br /&gt;
&lt;br /&gt;
;以下是一些可以配合MISRA C規則進行檢查的工具：&lt;br /&gt;
* [[Polyspace]]&amp;lt;ref&amp;gt;{{Cite web |url=http://www.sourcewire.com/releases/rel_display.php?relid=19765 |title=PolySpace announces MISRA compliance checker |accessdate=2012-04-24 |archive-date=2019-10-18 |archive-url=https://web.archive.org/web/20191018083352/https://pressreleases.responsesource.com/news/19765/polyspace-announces-misra-compliance-checker/ |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|GrammaTech|GrammaTech}}&lt;br /&gt;
* {{link-en|Klocwork|Klocwork}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.klocwork.com/solutions/misra-coding-standards/index.php |title=MISRA Coding Standards |access-date=2012-04-24 |archive-date=2014-10-04 |archive-url=https://web.archive.org/web/20141004234804/http://www.klocwork.com/solutions/misra-coding-standards/index.php }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|Coverity|Coverity}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.coverity.com/coverity5/5-steps.html |title=The 5 Steps |accessdate=2012-04-24 |archive-date=2012-08-20 |archive-url=https://web.archive.org/web/20120820115122/http://www.coverity.com/coverity5/5-steps.html |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|LDRA|Liverpool Data Research Associates}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.ldra.com/zh/solutions/by-standard-adherence/misra-c2004 |title=LDRA工具套件的MISRA-C: 2004验证 |accessdate=2012-04-24 |archive-date=2012-09-04 |archive-url=https://archive.today/20120904094435/http://www.ldra.com/zh/solutions/by-standard-adherence/misra-c2004 |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|Parasoft|Parasoft}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.parasoft.com/jsp/standards/compliance_misra.jsp |title=MISRA Compliance |accessdate=2012-04-24 |archive-date=2013-10-22 |archive-url=https://web.archive.org/web/20131022235253/http://www.parasoft.com/jsp/standards/compliance_misra.jsp |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|PC-Lint|PC-Lint}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.keil.com/pclint/ |title=PC-Lint |accessdate=2012-04-24 |archive-date=2020-09-29 |archive-url=https://web.archive.org/web/20200929013024/https://www.keil.com/pclint/ |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|QA-C|QA-C}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.programmingresearch.com/products/qac/ |title=QA·C |accessdate=2012-04-24 |archive-date=2016-04-15 |archive-url=https://web.archive.org/web/20160415233133/http://www.programmingresearch.com/products/qac/ |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|Understand (軟體)|Understand (software)}}&lt;br /&gt;
&lt;br /&gt;
;以下是一些可以配合MISRA C規則進行檢查的編譯器：&lt;br /&gt;
* {{link-en|Green Hills軟體|Green Hills Software}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.ghs.com/products/misrac.html |title=MISRA C Support |accessdate=2012-04-24 |archive-date=2018-11-11 |archive-url=https://web.archive.org/web/20181111211655/https://www.ghs.com/products/misrac.html |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* {{link-en|IAR系統|IAR Systems}}&amp;lt;ref&amp;gt;{{Cite web |url=http://www.iar.com/en/Products/IAR-Embedded-Workbench/Technology/MISRA-C/ |title=MISRA C |access-date=2012-04-24 |archive-url=https://web.archive.org/web/20120427191051/http://www.iar.com/en/Products/IAR-Embedded-Workbench/Technology/MISRA-C/ |archive-date=2012-04-27 |dead-url=yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==相關條目==&lt;br /&gt;
*[[代码风格]]&lt;br /&gt;
*[[The Power of 10]]&lt;br /&gt;
&lt;br /&gt;
==參考資料==&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
* [http://www.misra.org.uk MISRA 網站] {{Wayback|url=http://www.misra.org.uk/ |date=20110727141027 }}&lt;br /&gt;
&lt;br /&gt;
{{Embedded systems}}&lt;br /&gt;
&lt;br /&gt;
[[Category:C語言]]&lt;br /&gt;
[[Category:C語言家族]]&lt;br /&gt;
[[Category:嵌入式系统]]&lt;br /&gt;
[[Category:欣克利和博斯沃思]]&lt;br /&gt;
[[Category:程式語言標準]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ohtashinichiro</name></author>
	</entry>
</feed>