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>
#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ÍøÂç¿âioframe is a simple base socket library using libevent.http://blog.csdn.net/Solstice/archive/2010/03/10/5364096.aspx
°´ÕÕ
µÄ˼ÏëÌá½»µÄÒ»·Ý´úÂë¡£
ÉèÏëÖÐµÄ C++ ÍøÂç¿âḬ̈߳²È«£¬Ö§³Ö¶àºË¶àÏß³ÌÔÚ²»Ôö¼Ó¸´ÔӶȵÄǰÌáÏ¿ÉÒÔÖ§³Ö FreeBSD/Darwin£¬·½±ã½«À´Óà Mac ×÷Ϊ¿ª·¢Óûú£¬µ«²»ÎªËü×öÐÔÄÜ ......
1. ö¾ÙµÄ¶¨Òåö¾ÙÀàÐͶ¨ÒåµÄÒ»°ãÐÎʽΪ£º
enum ö¾ÙÃû{ ö¾ÙÖµ±í };
ÔÚö¾ÙÖµ±íÖÐÓ¦ÂÞÁгöËùÓпÉÓÃÖµ¡£ÕâЩֵҲ³ÆÎªÃ¶¾ÙÔªËØ¡£
ÀýÈ磺
¸Ãö¾ÙÃûΪweekday£¬Ã¶¾ÙÖµ¹²ÓÐ7¸ö£¬¼´Ò»ÖÜÖÐµÄÆßÌì¡£·²±»ËµÃ÷ΪweekdayÀàÐͱäÁ¿µÄȡֵֻÄÜÊÇÆßÌìÖеÄijһÌì¡£
2. ö¾Ù±äÁ ......
Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀà ......
±¾ÎÄÀ´×Ô£º http://blog.pfan.cn/xiuandfang/24935.html
±êÇ©:C C ++ string String Êý¾Ý½á¹¹
C×Ö·û´®´¦Àíº¯ÊýµÄʵÏÖ
C×Ö·û´®´¦Àíº¯ÊýµÄʵÏÖ£¨Linux£©
#include <stddef.h>
char * ___strtok = NULL;
char * strcpy(char * dest,const char *src)
&nb ......