MISRA C £ºÈÃǶÈëʽϵͳ¸ü¼Ó°²È«¿É¿¿µÄһЩ¹Ø¼ü¹æÔò
ת×Ô£ºhttp://www.bmrtech.com/article/2008/081126.htm
ûÈËÄÜ·ñÈÏǶÈëʽӦÓÃÕý±äµÃÔ½À´Ô½ÆÕ±é¡£µ«ÊÇ£¬µ±ÏµÍ³Ô½À´Ô½¸´ÔÓ£¬¶øÎÒÃǸ³ÓèϵͳԽÀ´Ô½¶àµÄÔðÈεÄʱºò£¬ÎÒÃǽ«±ØÐëÃæ¶ÔÒ»Ð©ÖØÒªÎÊÌâ¡£ÆäÖÐ×îÖØÒªµÄÎÊÌâÊÇ£ºÎÒÃÇÈçºÎ²ÅÄÜÈ·±£Ç¶ÈëʽϵͳÊǰ²È«¿É¿¿µÄ£¿
C ±à³ÌÓïÑÔΪÓû§ÌṩÁËÐí¶àÇ¿´óµÄ¹¦ÄÜ£¬¼¸ºõÓë»ã±àÓïÑÔÒ»ÑùÇ¿´ó¡£´ËÍ⣬ C ÓïÑÔ»¹°üº¬ÁËһЩÔÚ±ê×¼ÖÐδÃ÷È·¶¨ÒåµÄÇøÓòºÍ²»Óö¨Òå¾ÍÄÜʵÏÖµÄÌõ¿î¡£
Óà C À´±àдһ¸ö°²È«¿É¿¿µÄ³ÌÐò²¢²»½ö½öÒâζןóÌÐòÄÜÍêÈ«°´ÕÕ±à³ÌÕßµÄÔ¤ÆÚÀ´ÔËÐС£Ëü±»ÒÆÖ²µ½Ò»¸ö²»Í¬µÄ»·¾³ÏÂÒ²ÐèÒªÕýÈ·ÔËÐС£¸üÖØÒªµÄÊÇ£¬µ±ÆäËûÈËÔ±ÔĶÁÕâЩԴ´úÂëʱ£¬ËüÃDZØÐëÏñË®¾§Ò»ÑùÇåÎúÃ÷ÁË£ºÒ»·½Ãæ¼ò»¯Á˲»±ØÒªµÄ²Â²âºÍÚ¹ÊÍ£¬ÁíÒ»·½Ãæµ±»ùÓÚÕâЩ´úÂëÀ´×ö½øÒ»²½¿ª·¢Ê±£¬Äܹæ±ÜÓÕ·¢Ð´íÎóµÄ·çÏÕ¡£
Æû³µ¹¤ÒµÈí¼þ¿É¿¿ÐÔлá (MISRA) ²ÉÈ¡µÄ´ëÊ©ÊǶ¨ÒåÒ»Ì× C ±à³ÌÓïÑÔµÄ×Ó¼¯¡£Èç¹ûÔÚÓ¦Óÿª·¢ÖнöʹÓÃÕâ¸ö×Ó¼¯£¬ÄÇôÐí¶à C ±à³ÌÓïÑÔÖдæÔÚµÄȱÏݾÍÄܱ»¹æ±ÜÁË¡£
Õâ¸ö×Ó¼¯Ãû³ÆÎª "MISRA C" £¬ÔÚÒ»±¾ÃûΪ“ Guides For The Use Of The C Language In Vehicle Based Software ”µÄÊÖ²áÖÐÓоßÌ嶨Òå¡£¸ÃÖ¸ÄϹ²°üÀ¨ 127 Ìõ¹æÔò£¬·ÖΪ“±ØÑ¡”ºÍ“½¨Òé”Á½Àà¡£
IAR Embedded Workbench Öм¸¿î²úÆ·£¨²Î¼ûÒÔÏÂÁÐ±í£©£¬ÄÚ½¨ÁËÒ»¸öÄܼì²é¾ø´ó¶àÊý MISRA C ¹æÔòµÄ¼ì²éÆ÷£¬µ«ÊÇijЩ¹æÔòÊÇÎÞ·¨±»×Ô¶¯¼ì²âµÄ¡£
Èç¹ûÔÚ±àдӦÓÃʱÍüÁËʹÓÃÕâЩ¹æÔò£¬ÒÔºóÔÙÈ¥ÐÞ¸ÄÓ¦ÓÃÒÔ·ûºÏÕâЩ¹æ·¶½«·Ç³£À§ÄÑ¡£±ÈÈ磬 MISRA C µÚ 118 Ìõ¹æÔò½ûֹʹÓö¯Ì¬·ÖÅäÄڴ棬µÚ 101 Ìõ¹æÔò¹æ¶¨½ûֹʹÓà ָÕëÔËËã £¬µÚ 102 Ìõ¹æÔò±íʾ²»¿ÉÒÔʹÓà ³¬¹ýÁ½¼¶µÄ¼ä½ÓÖ¸Õë ¡£
ÁíÒ»·½Ã棬Óм¸Ìõ¹æÔòÊǷdz£¼òµ¥Ã÷Á˺ͳÉÊ죬¼´Ê¹ÄãûÓÐÏë¹ýÈÃÄãµÄÓ¦ÓÃ×öµ½ 100% µÄ MISRA C ¼æÈÝ£¬Èç¹ûÄÜÖ§³ÖÆäÖм¸ÌõÒ²ÖÁÉÙÄÜÈÃÓ¦Óøü¿É¿¿Ò»Ð©¡£
ÔÚÕâÆªÎÄÕÂÀÎÒ½«ÍƼöһЩӦ¸ÃÊÊÓÃÓÚËùÓÐÏîÄ¿µÄ¹æÔò£¬¼´±ãÄãûÏë×öµ½ 100% µÄ MISRA C ¼æÈÝ¡£ÕâЩ±»ÌôÑ¡³öÀ´µÄ¹æÔòͨ³£ÊDZàÒëÆ÷²»»áÈ¥¼ì²éµÄ¡£
ÔÚ IAR Embedded Workbench ÖÐʹÓà MISRA C
ÔÚ IAR Embedded Workbench ÖУ¬ MISRA C µÄ½çÃæ·Ç³£¼òµ¥Ò×Óã¬Äã¿ÉÒÔÖ±½ÓÑ¡ÔñÄãËùÏ£Íû¼ì²éµÄ¹æÔò£¬Ò²¿ÉÒÔÔÚ "MISRA C" ±êÇ©Ï嵀 " ͨÓÃÑ¡Ïî " ²¿·ÖµÄ "Options" ²Ëµ¥ÁбíÖнøÐÐÑ¡Ôñ ¡£Èç¹ûÄãʹÓÃÃüÁîÐз½Ê½£¬Äã¿ÉÒÔʹÓà --misrac ºÍ --misrac_verbose ÃüÁîÑ¡Ïî¡£
´ó¶àÊý¹æÔò¶¼ÓɱàÒëÆ÷×ÔÉíÀ´¼ì²é¡£È»¶ø£
Ïà¹ØÎĵµ£º
1.staticÓÐʲôÓÃ;£¿£¨ÇëÖÁÉÙ˵Ã÷Á½ÖÖ£©
1)ÔÚº¯ÊýÌ壬һ¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿ÔÚÕâÒ»º¯Êý±»µ÷Óùý³ÌÖÐά³ÖÆäÖµ²»±ä¡£
2) ÔÚÄ£¿éÄÚ£¨µ«ÔÚº¯ÊýÌåÍ⣩£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ¡£ËüÊÇÒ»¸ö±¾µØµÄÈ«¾Ö±äÁ¿¡£
......
ÈôÏëÔÚubuntuϱàÒëc/c++´úÂë
Ê×ÏÈ£¬°²×°g++ºÍgdb£¬¿ÉÒÔÔÚÐÂÁ¢µÃÖÐÖ±½Ó°²×°
ÈôÒª±àÒëc£¬È磺
££include
<stdio.h>
int main()
{
printf("Hello,World!\n");
return 0;
}
......
Õâ¸ö¶«¶«£¬ÂùºÃÍæµÄ¡£Æäʵ¾ÍÊǶÁÈ¡ÁË/proc/net/dev Îļþ¡£
struct netdev_stats {
unsigned long long rx_packets_m; /* total packets received */
unsigned long long tx_packets_m; &nbs ......
µÚÒ»Ì⣺
ÏÂÃæ³ÌÐòµÄÊä³ö½á¹û£¿
#include <stdio.h>
#include <iostream>
void main()
{
char str1[] = "";
char str2[] = "";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "a ......
Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀà ......