Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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 ÃüÁîÑ¡Ïî¡£
´ó¶àÊý¹æÔò¶¼ÓɱàÒëÆ÷×ÔÉíÀ´¼ì²é¡£È»¶ø£


Ïà¹ØÎĵµ£º

ÓÃC/C++×öDLLº¯ÊýµÄµ¼³ö·½·¨

ÓÉÓÚVC±àÒëÆ÷Óк¯ÊýÖØÃüÃûµÄ¹¦ÄÜËùÒÔ£¬È·¶¨º¯ÊýÃûÓÐÁ½ÖÖ·½Ê½£º
1.extern "C"
2.ʹÓÃ.defÎļþ
ÕâÁ½ÖÖÒ²¿ÉÒÔÒ»ÆðʹÓá£
ÏÂÃæÊÇÒ»¸öÀý×Ó£º
extern "C" _declspec(dllexport)int __stdcall JieCheng(int a)
{//½×³Ëº¯Êý¡£ÊäÈë:ÕýÕûÊý¡£Êä³ö:Õâ¸öÊýµÄ½×³ËÖµ
 int b=1;
 for(int i=1;i<=a;i++)
 {
&n ......

c ¶ÁÈ¡Îļþ

#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ÏÂCÓïÑÔ±à³Ì ÎļþµÄ²Ù×÷

ǰÑÔ: 
    ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý. 
1.ÎļþµÄ´´½¨ºÍ¶Áд 
2.ÎļþµÄ¸÷¸öÊôÐÔ 
3.Ŀ¼ÎļþµÄ²Ù×÷ 
4.¹ÜµÀÎļþ 
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд 
......

linuxÉÏcÓïÑÔ »ñµÃÍøÂç½Ó¿ÚµÄͳ¼ÆÖµ

Õâ¸ö¶«¶«£¬ÂùºÃÍæµÄ¡£Æäʵ¾ÍÊǶÁÈ¡ÁË/proc/net/dev Îļþ¡£
struct netdev_stats {
    unsigned long long rx_packets_m;    /* total packets received       */
    unsigned long long tx_packets_m;     &nbs ......

cº¯Êýscanf(),printf()µÈ³£Óøñʽ×Ö·û´®

%d   ¶ÌÕûÐÎ,Ò»°ãÕ¼Á½¸ö×Ö½Ú
%u   ÎÞ·ûºÅ¶ÌÕûÐÎ
%ld  ³¤ÕûÐÎ,Ò»°ãÕ¼Ëĸö×Ö½Ú
%c   ×Ö·ûÐÍ
%s    ×Ö·û´®
Ö÷ÒªÓÃÔÚÊäÈëÊä³öº¯Êý£ºscanf(),printf()Àï
\a:·äÃù£¬ÏìÁå
\b:»ØÍË£ºÏòºóÍËÒ»¸ñ
\f:»»Ò³
\n:»»ÐУ¬¹â±êµ½ÏÂÐÐÐÐÊ×
\r:»Ø³µ£¬¹â±êµ½±¾ÐÐÐÐÊ×
\t:Ë®Æ½ÖÆ±í
\v:´¹Ö±ÖƱí ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ