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 ÃüÁîÑ¡Ïî¡£
´ó¶àÊý¹æÔò¶¼ÓɱàÒëÆ÷×ÔÉíÀ´¼ì²é¡£È»¶ø£
Ïà¹ØÎĵµ£º
#include <stdio.h>
int main ()
{
FILE *fp1;
fp1=fopen("test0.txt","rt");
if(fp1==NULL)
{
printf("can not open test0.txt\n");return 0;
&n ......
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
1.ÎļþµÄ´´½¨ºÍ¶Áд
2.ÎļþµÄ¸÷¸öÊôÐÔ
3.Ŀ¼ÎļþµÄ²Ù×÷
4.¹ÜµÀÎļþ
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
......
C++ÌṩµÄ±àÒëÔ¤´¦Àí¹¦ÄÜÖ÷ÒªÓÐÒÔÏÂÈýÖÖ£º
¡¡¡¡£¨Ò»£© ºê¶¨Òå
¡¡¡¡£¨¶þ£© Îļþ°üº¬
¡¡¡¡£¨Èý£© Ìõ¼þ±àÒë
¡¡¡¡ÔÚC++ÖУ¬ÎÒÃÇÒ»°ãÓÃconst¶¨Òå·ûºÅ³£Á¿¡£ºÜÏÔÈ»£¬ÓÃconst¶¨Òå³£Á¿±ÈÓÃdefine¶¨Òå³£Á¿¸üºÃ¡£
¡¡¡¡ÔÚʹÓú궨ÒåʱӦעÒâµÄÊÇ£º
¡¡¡¡£¨a£© ÔÚÊéд#define ÃüÁîʱ£¬×¢Òâ<ºêÃû>ºÍ<×Ö·û´®>Ö®¼äÓÿո ......
Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀà ......
1¡¢ һЩͷÎļþµÄ×÷Óãº
<assert.h>£ºANSI C¡£Ìṩ¶ÏÑÔ£¬assert(±í´ïʽ)
<glib.h>£ºGCC¡£GTK£¬GNOMEµÄ»ù´¡¿â£¬ÌṩºÜ¶àÓÐÓõĺ¯Êý£¬ÈçÓÐÊý¾Ý½á¹¹²Ù×÷º¯Êý¡£Ê¹ÓÃglibÖ»ÐèÒª°üº¬<glib.h>
<dirent.h>£ºGCC¡£Îļþ¼Ð²Ù×÷º¯Êý¡£struct dirent,struct DIR,opendir(),closedir(),readdir(),readdi ......