UMLÈí¼þ¹¤³Ì×éÖ¯

C´úÂëÓÅ»¯·½°¸

 

2008-11-10 ×÷Õß:ÍõÈ«Ã÷ À´Ô´:csdn

 

Ŀ¼__ 2

C´úÂëÓÅ»¯·½°¸__ 4

1¡¢Ñ¡ÔñºÏÊʵÄËã·¨ºÍÊý¾Ý½á¹¹__ 4

2¡¢Ê¹Óþ¡Á¿Ð¡µÄÊý¾ÝÀàÐÍ__ 5

3¡¢¼õÉÙÔËËãµÄÇ¿¶È__ 5

£¨1£©¡¢²é±í(ÓÎÏ·³ÌÐòÔ±±ØÐÞ¿Î)_ 5

£¨2£©¡¢ÇóÓàÔËËã__ 6

£¨3£©¡¢Æ½·½ÔËËã__ 6

£¨4£©¡¢ÓÃÒÆλʵÏֳ˳ý·¨ÔËËã__ 6

£¨5£©¡¢±ÜÃâ²»±ØÒªµÄÕûÊý³ý·¨__ 8

£¨6£©¡¢Ê¹ÓÃÔöÁ¿ºÍ¼õÁ¿²Ù×÷·û__ 8

£¨7£©¡¢Ê¹Óø´ºÏ¸³Öµ±í´ïʽ__ 8

£¨8£©¡¢ÌáÈ¡¹«¹²µÄ×Ó±í´ïʽ__ 9

4¡¢½á¹¹Ìå³ÉÔ±µÄ²¼¾Ö__ 9

£¨1£©°´Êý¾ÝÀàÐ͵ij¤¶ÈÅÅÐò__ 10

£¨2£©°Ñ½á¹¹ÌåÌî³ä³É×ÀàÐͳ¤¶ÈµÄÕû±¶Êý__ 10

£¨3£©°´Êý¾ÝÀàÐ͵ij¤¶ÈÅÅÐò±¾µØ±äÁ¿__ 10

£¨4£©°ÑƵ·±Ê¹ÓõÄÖ¸ÕëÐͲÎÊý¿½±´µ½±¾µØ±äÁ¿__ 11

5¡¢Ñ­»·ÓÅ»¯__ 12

£¨1£©¡¢³ä·Ö·Ö½âСµÄÑ­»·__ 12

£¨2£©¡¢ÌáÈ¡¹«¹²²¿·Ö__ 13

£¨3£©¡¢ÑÓʱº¯Êý__ 13

£¨4£©¡¢whileÑ­»·ºÍdo¡­whileÑ­»·__ 14

£¨6£©¡¢Ñ­»·Õ¹¿ª__ 14

£¨6£©¡¢Ñ­»·Ç¶Ì×__ 15

£¨7£©¡¢SwitchÓï¾äÖиù¾Ý·¢ÉúƵÂÊÀ´½øÐÐcaseÅÅÐò__ 16

£¨8£©¡¢½«´óµÄswitchÓï¾äתΪǶÌ×switchÓï¾ä__ 17

£¨9£©¡¢Ñ­»·×ªÖÃ__ 18

£¨10£©¡¢¹«ÓôúÂë¿é__ 19

£¨11£©ÌáÉýÑ­»·µÄÐÔÄÜ__ 19

£¨12£©¡¢Ñ¡ÔñºÃµÄÎÞÏÞÑ­»·__ 20

6¡¢Ìá¸ßCPUµÄ²¢ÐÐÐÔ__ 21

£¨1£©Ê¹Óò¢ÐдúÂë__ 21

£¨2£©±ÜÃâûÓбØÒªµÄ¶ÁдÒÀÀµ__ 22

7¡¢Ñ­»·²»±ä¼ÆËã__ 23

8¡¢º¯Êý__ 24

£¨1£©Inlineº¯Êý__ 24

£¨2£©²»¶¨Ò岻ʹÓõķµ»ØÖµ__ 24

£¨3£©¼õÉÙº¯Êýµ÷ÓòÎÊý__ 24

£¨4£©ËùÓк¯Êý¶¼Ó¦¸ÃÓÐÔ­ÐͶ¨Òå__ 24

£¨5£©¾¡¿ÉÄÜʹÓó£Á¿(const)_ 25

£¨6£©°Ñ±¾µØº¯ÊýÉùÃ÷Ϊ¾²Ì¬µÄ(static)_ 25

9¡¢²ÉÓõݹé__ 25

10¡¢±äÁ¿__ 25

£¨1£©register±äÁ¿__ 25

£¨2£©¡¢Í¬Ê±ÉùÃ÷¶à¸ö±äÁ¿ÓÅÓÚµ¥¶ÀÉùÃ÷±äÁ¿__ 26

£¨3£©¡¢¶Ì±äÁ¿ÃûÓÅÓÚ³¤±äÁ¿Ãû£¬Ó¦¾¡Á¿Ê¹±äÁ¿Ãû¶ÌÒ»µã__ 26

£¨4£©¡¢ÔÚÑ­»·¿ªÊ¼Ç°ÉùÃ÷±äÁ¿__ 26

11¡¢Ê¹ÓÃǶÌ×µÄif½á¹¹__ 26

1¡¢Ñ¡ÔñºÏÊʵÄËã·¨ºÍÊý¾Ý½á¹¹

Ñ¡ÔñÒ»ÖÖºÏÊʵÄÊý¾Ý½á¹¹ºÜÖØÒª£¬Èç¹ûÔÚÒ»¶ÑËæ»ú´æ·ÅµÄÊýÖÐʹÓÃÁË´óÁ¿µÄ²åÈëºÍɾ³ýÖ¸ÁÄÇʹÓÃÁ´±íÒª¿ìµÃ¶à¡£Êý×éÓëÖ¸ÕëÓï¾ä¾ßÓÐÊ®·ÖÃÜÇеĹØϵ£¬Ò»°ãÀ´Ëµ£¬Ö¸Õë±È½ÏÁé»î¼ò½à£¬¶øÊý×éÔò±È½ÏÖ±¹Û£¬ÈÝÒ×Àí½â¡£¶ÔÓڴ󲿷ֵıàÒëÆ÷£¬Ê¹ÓÃÖ¸Õë±ÈʹÓÃÊý×éÉú³ÉµÄ´úÂë¸ü¶Ì£¬Ö´ÐÐЧÂʸü¸ß¡£

ÔÚÐí¶àÖÖÇé¿öÏ£¬¿ÉÒÔÓÃÖ¸ÕëÔËËã´úÌæÊý×éË÷Òý£¬ÕâÑù×ö³£³£ÄܲúÉúÓÖ¿ìÓ̵ֶĴúÂë¡£ÓëÊý×éË÷ÒýÏà±È£¬Ö¸ÕëÒ»°ãÄÜʹ´úÂëËٶȸü¿ì£¬Õ¼Óÿռä¸üÉÙ¡£Ê¹ÓöàάÊý×éʱ²îÒì¸üÃ÷ÏÔ¡£ÏÂÃæµÄ´úÂë×÷ÓÃÊÇÏàͬµÄ£¬µ«ÊÇЧÂʲ»Ò»Ñù¡

    Êý×éË÷Òý                Ö¸ÕëÔËËã

    For(;;){                p=array

    A=array[t++];          for(;;){

                                a=*(p++);

    ¡£¡£¡£¡£¡£¡£¡£¡£¡£                  ¡£¡£¡£¡£¡£¡£

    }                      }

Ö¸Õë·½·¨µÄÓŵãÊÇ£¬arrayµÄµØַÿ´Î×°ÈëµØÖ·pºó£¬ÔÚÿ´ÎÑ­»·ÖÐÖ»Ðè¶ÔpÔöÁ¿²Ù×÷¡£ÔÚÊý×éË÷Òý·½·¨ÖУ¬Ã¿´ÎÑ­»·Öж¼±ØÐë¸ù¾ÝtÖµÇóÊý×éϱêµÄ¸´ÔÓÔËËã¡£

2¡¢Ê¹Óþ¡Á¿Ð¡µÄÊý¾ÝÀàÐÍ

Äܹ»Ê¹ÓÃ×Ö·ûÐÍ(char)¶¨ÒåµÄ±äÁ¿£¬¾Í²»ÒªÊ¹ÓÃÕûÐÍ(int)±äÁ¿À´¶¨Ò壻Äܹ»Ê¹ÓÃÕûÐͱäÁ¿¶¨ÒåµÄ±äÁ¿¾Í²»ÒªÓó¤ÕûÐÍ(long int)£¬Äܲ»Ê¹Óø¡µãÐÍ(float)±äÁ¿¾Í²»ÒªÊ¹Óø¡µãÐͱäÁ¿¡£µ±È»£¬ÔÚ¶¨Òå±äÁ¿ºó²»Òª³¬¹ý±äÁ¿µÄ×÷Ó÷¶Î§£¬Èç¹û³¬¹ý±äÁ¿µÄ·¶Î§¸³Öµ£¬C±àÒëÆ÷²¢²»±¨´í£¬µ«³ÌÐòÔËÐнá¹ûÈ´´íÁË£¬¶øÇÒÕâÑùµÄ´íÎóºÜÄÑ·¢ÏÖ¡£

ÔÚICCAVRÖУ¬¿ÉÒÔÔÚOptionsÖÐÉ趨ʹÓÃprintf²ÎÊý£¬¾¡Á¿Ê¹Óûù±¾ÐͲÎÊý(%c¡¢%d¡¢%x¡¢%X¡¢%uºÍ%s¸ñʽ˵Ã÷·û)£¬ÉÙÓó¤ÕûÐͲÎÊý(%ld¡¢%lu¡¢%lxºÍ%lX¸ñʽ˵Ã÷·û)£¬ÖÁÓÚ¸¡µãÐ͵IJÎÊý(%f)Ôò¾¡Á¿²»ÒªÊ¹Óã¬ÆäËüC±àÒëÆ÷Ò²Ò»Ñù¡£ÔÚÆäËüÌõ¼þ²»±äµÄÇé¿öÏ£¬Ê¹ÓÃ%f²ÎÊý£¬»áʹÉú³ÉµÄ´úÂëµÄÊýÁ¿Ôö¼ÓºÜ¶à£¬Ö´ÐÐËٶȽµµÍ¡£

3¡¢¼õÉÙÔËËãµÄÇ¿¶È

£¨1£©¡¢²é±í(ÓÎÏ·³ÌÐòÔ±±ØÐÞ¿Î)

Ò»¸ö´ÏÃ÷µÄÓÎÏ·´óϺ£¬»ù±¾Éϲ»»áÔÚ×Ô¼ºµÄÖ÷Ñ­»·Àï¸ãʲôÔËË㹤×÷£¬¾ø¶ÔÊÇÏȼÆËãºÃÁË£¬ÔÙµ½Ñ­»·Àï²é±í¡£¿´ÏÂÃæµÄÀý×Ó£º

¾É´úÂ룺

    long factorial(int i)

    {

        if (i == 0)

            return 1;

        else

            return i * factorial(i - 1);

    }

дúÂ룺

    static long factorial_table[] =

        {1£¬ 1£¬ 2£¬ 6£¬ 24£¬ 120£¬ 720  /* etc */ };

    long factorial(int i)

    {

        return factorial_table[i];

    }

Èç¹û±íºÜ´ó£¬²»ºÃд£¬¾Íдһ¸öinitº¯Êý£¬ÔÚÑ­»·ÍâÁÙʱÉú³É±í¸ñ¡£

£¨2£©¡¢ÇóÓàÔËËã

    a=a%8;

¿ÉÒÔ¸ÄΪ£º

    a=a&7;

˵Ã÷£ºÎ»²Ù×÷Ö»ÐèÒ»¸öÖ¸ÁîÖÜÆÚ¼´¿ÉÍê³É£¬¶ø´ó²¿·ÖµÄC±àÒëÆ÷µÄ¡°%¡±ÔËËã¾ùÊǵ÷ÓÃ×Ó³ÌÐòÀ´Íê³É£¬´úÂ볤¡¢Ö´ÐÐËÙ¶ÈÂý¡£Í¨³££¬Ö»ÒªÇóÊÇÇó2n·½µÄÓàÊý£¬¾ù¿ÉʹÓÃλ²Ù×÷µÄ·½·¨À´´úÌæ¡£

£¨3£©¡¢Æ½·½ÔËËã

a=pow(a, 2.0);

¿ÉÒÔ¸ÄΪ£º

a=a*a;

˵Ã÷£ºÔÚÓÐÄÚÖÃÓ²¼þ³Ë·¨Æ÷µÄµ¥Æ¬»úÖÐ(Èç51ϵÁÐ)£¬³Ë·¨ÔËËã±ÈÇóƽ·½ÔËËã¿ìµÃ¶à£¬ÒòΪ¸¡µãÊýµÄÇóƽ·½ÊÇͨ¹ýµ÷ÓÃ×Ó³ÌÐòÀ´ÊµÏֵģ¬ÔÚ×Ô´øÓ²¼þ³Ë·¨Æ÷µÄAVRµ¥Æ¬»úÖУ¬ÈçATMega163ÖУ¬³Ë·¨ÔËËãÖ»Ðè2¸öʱÖÓÖÜÆھͿÉÒÔÍê³É¡£¼ÈʹÊÇÔÚûÓÐÄÚÖÃÓ²¼þ³Ë·¨Æ÷µÄAVRµ¥Æ¬»úÖУ¬³Ë·¨ÔËËãµÄ×Ó³ÌÐò±Èƽ·½ÔËËãµÄ×Ó³ÌÐò´úÂë¶Ì£¬Ö´ÐÐËٶȿ졣

Èç¹ûÊÇÇó3´Î·½£¬È磺

a=pow(a£¬3¡£0);

¸ü¸ÄΪ£º

a=a*a*a£»

ÔòЧÂʵĸÄÉƸüÃ÷ÏÔ¡£

£¨4£©¡¢ÓÃÒÆλʵÏֳ˳ý·¨ÔËËã

    a=a*4;

    b=b/4;

¿ÉÒÔ¸ÄΪ£º

    a=a<<2;

    b=b>>2;

ͨ³£Èç¹ûÐèÒª³ËÒÔ»ò³ýÒÔ2n£¬¶¼¿ÉÒÔÓÃÒÆλµÄ·½·¨´úÌæ¡£ÔÚICCAVRÖУ¬Èç¹û³ËÒÔ2n£¬¶¼¿ÉÒÔÉú³É×óÒƵĴúÂ룬¶ø³ËÒÔÆäËüµÄÕûÊý»ò³ýÒÔÈκÎÊý£¬¾ùµ÷Óó˳ý·¨×Ó³ÌÐò¡£ÓÃÒÆλµÄ·½·¨µÃµ½´úÂë±Èµ÷Óó˳ý·¨×Ó³ÌÐòÉú³ÉµÄ´úÂëЧÂʸߡ£Êµ¼ÊÉÏ£¬Ö»ÒªÊdzËÒÔ»ò³ýÒÔÒ»¸öÕûÊý£¬¾ù¿ÉÒÔÓÃÒÆλµÄ·½·¨µÃµ½½á¹û£¬È磺

    a=a*9

¿ÉÒÔ¸ÄΪ£º

a=(a<<3)+a

²ÉÓÃÔËËãÁ¿¸üСµÄ±í´ïʽÌæ»»Ô­À´µÄ±í´ïʽ£¬ÏÂÃæÊÇÒ»¸ö¾­µäÀý×Ó:

¾É´úÂë:

    x = w % 8;

    y = pow(x£¬ 2.0);

    z = y * 33;

    for (i = 0;i < MAX;i++)

    {

        h = 14 * i;

        printf("%d"£¬ h);

    }

дúÂë:

    x = w & 7;              /* λ²Ù×÷±ÈÇóÓàÔËËã¿ì*/

    y = x * x;               /* ³Ë·¨±Èƽ·½ÔËËã¿ì*/

    z = (y << 5) + y;          /* λÒƳ˷¨±È³Ë·¨¿ì */

    for (i = h = 0; i < MAX; i++)

    {

        h += 14;                /* ¼Ó·¨±È³Ë·¨¿ì */

        printf("%d"£¬h);

}

£¨5£©¡¢±ÜÃâ²»±ØÒªµÄÕûÊý³ý·¨

ÕûÊý³ý·¨ÊÇÕûÊýÔËËãÖÐ×îÂýµÄ£¬ËùÒÔÓ¦¸Ã¾¡¿ÉÄܱÜÃâ¡£Ò»ÖÖ¿ÉÄܼõÉÙÕûÊý³ý·¨µÄµØ·½ÊÇÁ¬³ý£¬ÕâÀï³ý·¨¿ÉÒÔÓɳ˷¨´úÌæ¡£Õâ¸öÌæ»»µÄ¸±×÷ÓÃÊÇÓпÉÄÜÔÚËã³Ë»ýʱ»áÒç³ö£¬ËùÒÔÖ»ÄÜÔÚÒ»¶¨·¶Î§µÄ³ý·¨ÖÐʹÓá£

²»ºÃµÄ´úÂ룺

int i£¬ j£¬ k£¬ m£»

m = i / j / k£»

ÍƼöµÄ´úÂ룺

int i£¬ j£¬ k£¬ m£»

m = i / (j * k)£»

£¨6£©¡¢Ê¹ÓÃÔöÁ¿ºÍ¼õÁ¿²Ù×÷·û

ÔÚʹÓõ½¼ÓÒ»ºÍ¼õÒ»²Ù×÷ʱ¾¡Á¿Ê¹ÓÃÔöÁ¿ºÍ¼õÁ¿²Ù×÷·û£¬ÒòΪÔöÁ¿·ûÓï¾ä±È¸³ÖµÓï¾ä¸ü¿ì£¬Ô­ÒòÔÚÓÚ¶Ô´ó¶àÊýCPUÀ´Ëµ£¬¶ÔÄÚ´æ×ÖµÄÔö¡¢¼õÁ¿²Ù×÷²»±ØÃ÷ÏÔµØʹÓÃÈ¡ÄÚ´æºÍдÄÚ´æµÄÖ¸Á±ÈÈçÏÂÃæÕâÌõÓï¾ä£º

x=x+1;

Ä£·Â´ó¶àÊý΢»ú»ã±àÓïÑÔΪÀý£¬²úÉúµÄ´úÂëÀàËÆÓÚ£º

move A£¬x      ;°Ñx´ÓÄÚ´æÈ¡³ö´æÈëÀÛ¼ÓÆ÷A

add A£¬1        ;ÀÛ¼ÓÆ÷A¼Ó1

store x          ;°ÑÐÂÖµ´æ»Øx

Èç¹ûʹÓÃÔöÁ¿²Ù×÷·û£¬Éú³ÉµÄ´úÂëÈçÏ£º

incr x           ;x¼Ó1

ÏÔÈ»£¬²»ÓÃÈ¡Ö¸ÁîºÍ´æÖ¸ÁÔö¡¢¼õÁ¿²Ù×÷Ö´ÐеÄËٶȼӿ죬ͬʱ³¤¶ÈÒ²Ëõ¶ÌÁË¡£

£¨7£©¡¢Ê¹Óø´ºÏ¸³Öµ±í´ïʽ

¸´ºÏ¸³Öµ±í´ïʽ(Èça-=1¼°a+=1µÈ)¶¼Äܹ»Éú³É¸ßÖÊÁ¿µÄ³ÌÐò´úÂë¡£

£¨8£©¡¢ÌáÈ¡¹«¹²µÄ×Ó±í´ïʽ

ÔÚijЩÇé¿öÏ£¬C++±àÒëÆ÷²»ÄÜ´Ó¸¡µã±í´ïʽÖÐÌá³ö¹«¹²µÄ×Ó±í´ïʽ£¬ÒòΪÕâÒâζ×ÅÏ൱ÓÚ¶Ô±í´ïʽÖØÐÂÅÅÐò¡£ÐèÒªÌرðÖ¸³öµÄÊÇ£¬±àÒëÆ÷ÔÚÌáÈ¡¹«¹²×Ó±í´ïʽǰ²»ÄÜ°´ÕÕ´úÊýµÄµÈ¼Û¹ØϵÖØа²Åűí´ïʽ¡£Õâʱ£¬³ÌÐòÔ±ÒªÊÖ¶¯µØÌá³ö¹«¹²µÄ×Ó±í´ïʽ£¨ÔÚVC.NETÀïÓÐÒ»Ïî¡°È«¾ÖÓÅ»¯¡±Ñ¡Ïî¿ÉÒÔÍê³É´Ë¹¤×÷£¬µ«Ð§¹û¾Í²»µÃ¶øÖªÁË£©¡£

²»ºÃµÄ´úÂ룺

float a£¬ b£¬ c£¬ d£¬ e£¬ f£»

¡£¡£¡£

e = b * c / d£»

f = b / d * a£»

ÍƼöµÄ´úÂ룺

float a£¬ b£¬ c£¬ d£¬ e£¬ f£»

¡£¡£¡£

const float t(b / d)£»

e = c * t£»

f = a * t£»

²»ºÃµÄ´úÂ룺

float a£¬ b£¬ c£¬ e£¬ f£»

¡£¡£¡£

e = a / c£»

f = b / c£»

ÍƼöµÄ´úÂ룺

float a£¬ b£¬ c£¬ e£¬ f£»

¡£¡£¡£

const float t(1.0f / c)£»

e = a * t£»

f = b * t£»

4¡¢½á¹¹Ìå³ÉÔ±µÄ²¼¾Ö

ºÜ¶à±àÒëÆ÷ÓС°Ê¹½á¹¹Ìå×Ö£¬Ë«×Ö»òËÄ×Ö¶ÔÆ롱µÄÑ¡Ïî¡£µ«ÊÇ£¬»¹ÊÇÐèÒª¸ÄÉƽṹÌå³ÉÔ±µÄ¶ÔÆ룬ÓÐЩ±àÒëÆ÷¿ÉÄÜ·ÖÅä¸ø½á¹¹Ìå³ÉÔ±¿Õ¼äµÄ˳ÐòÓëËûÃÇÉùÃ÷µÄ²»Í¬¡£µ«ÊÇ£¬ÓÐЩ±àÒëÆ÷²¢²»ÌṩÕâЩ¹¦ÄÜ£¬»òÕßЧ¹û²»ºÃ¡£ËùÒÔ£¬ÒªÔÚ¸¶³ö×îÉÙ´ú¼ÛµÄÇé¿öÏÂʵÏÖ×îºÃµÄ½á¹¹ÌåºÍ½á¹¹Ìå³ÉÔ±¶ÔÆ룬½¨Òé²ÉÈ¡ÏÂÁз½·¨£º

£¨1£©°´Êý¾ÝÀàÐ͵ij¤¶ÈÅÅÐò

°Ñ½á¹¹ÌåµÄ³ÉÔ±°´ÕÕËüÃǵÄÀàÐͳ¤¶ÈÅÅÐò£¬ÉùÃ÷³ÉԱʱ°Ñ³¤µÄÀàÐÍ·ÅÔڶ̵ÄÇ°Ãæ¡£±àÒëÆ÷ÒªÇó°Ñ³¤ÐÍÊý¾ÝÀàÐÍ´æ·ÅÔÚżÊýµØÖ·±ß½ç¡£ÔÚÉêÃ÷Ò»¸ö¸´ÔÓµÄÊý¾ÝÀàÐÍ (¼ÈÓжà×Ö½ÚÊý¾ÝÓÖÓе¥×Ö½ÚÊý¾Ý) ʱ£¬Ó¦¸ÃÊ×ÏÈ´æ·Å¶à×Ö½ÚÊý¾Ý£¬È»ºóÔÙ´æ·Åµ¥×Ö½ÚÊý¾Ý£¬ÕâÑù¿ÉÒÔ±ÜÃâÄÚ´æµÄ¿Õ¶´¡£±àÒëÆ÷×Ô¶¯µØ°Ñ½á¹¹µÄʵÀý¶ÔÆëÔÚÄÚ´æµÄżÊý±ß½ç¡£

£¨2£©°Ñ½á¹¹ÌåÌî³ä³É×ÀàÐͳ¤¶ÈµÄÕû±¶Êý

°Ñ½á¹¹ÌåÌî³ä³É×ÀàÐͳ¤¶ÈµÄÕû±¶Êý¡£ÕÕÕâÑù£¬Èç¹û½á¹¹ÌåµÄµÚÒ»¸ö³ÉÔ±¶ÔÆëÁË£¬ËùÓÐÕû¸ö½á¹¹Ìå×ÔȻҲ¾Í¶ÔÆëÁË¡£ÏÂÃæµÄÀý×ÓÑÝʾÁËÈçºÎ¶Ô½á¹¹Ìå³ÉÔ±½øÐÐÖØÐÂÅÅÐò£º

²»ºÃµÄ´úÂ룬ÆÕͨ˳Ðò£º

struct

{

char a[5]£»

long k£»

double x£»

} baz£»

ÍƼöµÄ´úÂ룬еÄ˳Ðò²¢ÊÖ¶¯Ìî³äÁ˼¸¸ö×Ö½Ú£º

struct

{

double x£»

long k£»

char a[5]£»

char pad[7]£»

} baz£»

Õâ¸ö¹æÔòͬÑùÊÊÓÃÓÚÀàµÄ³ÉÔ±µÄ²¼¾Ö¡£

£¨3£©°´Êý¾ÝÀàÐ͵ij¤¶ÈÅÅÐò±¾µØ±äÁ¿

µ±±àÒëÆ÷·ÖÅä¸ø±¾µØ±äÁ¿¿Õ¼äʱ£¬ËüÃǵÄ˳ÐòºÍËüÃÇÔÚÔ´´úÂëÖÐÉùÃ÷µÄ˳ÐòÒ»Ñù£¬ºÍÉÏÒ»Ìõ¹æÔòÒ»Ñù£¬Ó¦¸Ã°Ñ³¤µÄ±äÁ¿·ÅÔڶ̵ıäÁ¿Ç°Ãæ¡£Èç¹ûµÚÒ»¸ö±äÁ¿¶ÔÆëÁË£¬ÆäËü±äÁ¿¾Í»áÁ¬ÐøµÄ´æ·Å£¬¶øÇÒ²»ÓÃÌî³ä×Ö½Ú×ÔÈ»¾Í»á¶ÔÆë¡£ÓÐЩ±àÒëÆ÷ÔÚ·ÖÅä±äÁ¿Ê±²»»á×Ô¶¯¸Ä±ä±äÁ¿Ë³Ðò£¬ÓÐЩ±àÒëÆ÷²»ÄܲúÉú4×Ö½Ú¶ÔÆëµÄÕ»£¬ËùÒÔ4×Ö½Ú¿ÉÄܲ»¶ÔÆë¡£ÏÂÃæÕâ¸öÀý×ÓÑÝʾÁ˱¾µØ±äÁ¿ÉùÃ÷µÄÖØÐÂÅÅÐò£º

²»ºÃµÄ´úÂ룬ÆÕͨ˳Ðò

short ga£¬ gu£¬ gi£»

long foo£¬ bar£»

double x£¬ y£¬ z[3]£»

char a£¬ b£»

float baz£»

ÍƼöµÄ´úÂ룬¸Ä½øµÄ˳Ðò

double z[3]£»

double x£¬ y£»

long foo£¬ bar£»

float baz£»

short ga£¬ gu£¬ gi£» 

£¨4£©°ÑƵ·±Ê¹ÓõÄÖ¸ÕëÐͲÎÊý¿½±´µ½±¾µØ±äÁ¿

±ÜÃâÔÚº¯ÊýÖÐƵ·±Ê¹ÓÃÖ¸ÕëÐͲÎÊýÖ¸ÏòµÄÖµ¡£ÒòΪ±àÒëÆ÷²»ÖªµÀÖ¸ÕëÖ®¼äÊÇ·ñ´æÔÚ³åÍ»£¬ËùÒÔÖ¸ÕëÐͲÎÊýÍùÍù²»Äܱ»±àÒëÆ÷ÓÅ»¯¡£ÕâÑùÊý¾Ý²»Äܱ»´æ·ÅÔڼĴæÆ÷ÖУ¬¶øÇÒÃ÷ÏÔµØÕ¼ÓÃÁËÄÚ´æ´ø¿í¡£×¢Ò⣬ºÜ¶à±àÒëÆ÷ÓС°¼ÙÉè²»³åÍ»¡±ÓÅ»¯¿ª¹Ø£¨ÔÚVCÀï±ØÐëÊÖ¶¯Ìí¼Ó±àÒëÆ÷ÃüÁîÐÐ/Oa»ò/Ow£©£¬ÕâÔÊÐí±àÒëÆ÷¼ÙÉèÁ½¸ö²»Í¬µÄÖ¸Õë×ÜÊÇÓв»Í¬µÄÄÚÈÝ£¬ÕâÑù¾Í²»ÓðÑÖ¸ÕëÐͲÎÊý±£´æµ½±¾µØ±äÁ¿¡£·ñÔò£¬ÇëÔÚº¯ÊýÒ»¿ªÊ¼°ÑÖ¸ÕëÖ¸ÏòµÄÊý¾Ý±£´æµ½±¾µØ±äÁ¿¡£Èç¹ûÐèÒªµÄ»°£¬ÔÚº¯Êý½áÊøÇ°¿½±´»ØÈ¥¡£

²»ºÃµÄ´úÂ룺

// ¼ÙÉè q != r

void isqrt(unsigned long a£¬ unsigned long* q£¬ unsigned long* r)

{

¡¡¡¡*q = a£»

¡¡¡¡if (a > 0)

¡¡¡¡{

¡¡¡¡¡¡¡¡while (*q > (*r = a / *q))

¡¡¡¡¡¡¡¡{

¡¡¡¡¡¡¡¡¡¡¡¡*q = (*q + *r) >> 1£»

¡¡¡¡¡¡¡¡}

¡¡¡¡}

¡¡¡¡*r = a - *q * *q£»

}

ÍƼöµÄ´úÂ룺

// ¼ÙÉè q != r

void isqrt(unsigned long a£¬ unsigned long* q£¬ unsigned long* r)

{

¡¡¡¡unsigned long qq£¬ rr£»

¡¡¡¡qq = a£»

¡¡¡¡if (a > 0)

¡¡¡¡{

¡¡¡¡¡¡¡¡while (qq > (rr = a / qq))

¡¡¡¡¡¡¡¡{

¡¡¡¡¡¡¡¡¡¡¡¡qq = (qq + rr) >> 1£»

¡¡¡¡¡¡¡¡}

¡¡¡¡}

¡¡¡¡rr = a - qq * qq£»

¡¡¡¡*q = qq£»

¡¡¡¡*r = rr£»

}

5¡¢Ñ­»·ÓÅ»¯

£¨1£©¡¢³ä·Ö·Ö½âСµÄÑ­»·

Òª³ä·ÖÀûÓÃCPUµÄÖ¸Á´æ£¬¾ÍÒª³ä·Ö·Ö½âСµÄÑ­»·¡£ÌرðÊǵ±Ñ­»·Ìå±¾ÉíºÜСµÄʱºò£¬·Ö½âÑ­»·¿ÉÒÔÌá¸ßÐÔÄÜ¡£×¢Òâ:ºÜ¶à±àÒëÆ÷²¢²»ÄÜ×Ô¶¯·Ö½âÑ­»·¡£ ²»ºÃµÄ´úÂ룺

// 3Dת»¯£º°ÑʸÁ¿ V ºÍ 4x4 ¾ØÕó M Ïà³Ë

for (i = 0£» i < 4£» i ++)

{

¡¡¡¡r[i] = 0£»

¡¡¡¡for (j = 0£» j < 4£» j ++)

¡¡¡¡{

¡¡¡¡¡¡¡¡r[i] += M[j][i]*V[j]£»

¡¡¡¡}

}

ÍƼöµÄ´úÂ룺

r[0] = M[0][0]*V[0] + M[1][0]*V[1] + M[2][0]*V[2] + M[3][0]*V[3]£»

r[1] = M[0][1]*V[0] + M[1][1]*V[1] + M[2][1]*V[2] + M[3][1]*V[3]£»

r[2] = M[0][2]*V[0] + M[1][2]*V[1] + M[2][2]*V[2] + M[3][2]*V[3]£»

r[3] = M[0][3]*V[0] + M[1][3]*V[1] + M[2][3]*V[2] + M[3][3]*v[3]£»

£¨2£©¡¢ÌáÈ¡¹«¹²²¿·Ö

¶ÔÓÚһЩ²»ÐèҪѭ»·±äÁ¿²Î¼ÓÔËËãµÄÈÎÎñ¿ÉÒÔ°ÑËüÃǷŵ½Ñ­»·ÍâÃ棬ÕâÀïµÄÈÎÎñ°üÀ¨±í´ïʽ¡¢º¯ÊýµÄµ÷Óá¢Ö¸ÕëÔËËã¡¢Êý×é·ÃÎʵȣ¬Ó¦¸Ã½«Ã»ÓбØÒªÖ´Ðжà´ÎµÄ²Ù×÷È«²¿¼¯ºÏÔÚÒ»Æ𣬷ŵ½Ò»¸öinitµÄ³õʼ»¯³ÌÐòÖнøÐС£

£¨3£©¡¢ÑÓʱº¯Êý

ͨ³£Ê¹ÓõÄÑÓʱº¯Êý¾ù²ÉÓÃ×Ô¼ÓµÄÐÎʽ£º

    void delay (void)

    {

unsigned int i;

    for (i=0;i<1000;i++) ;

    }

½«Æä¸ÄΪ×Ô¼õÑÓʱº¯Êý£º

    void delay (void)

    {

unsigned int i;

        for (i=1000;i>0;i--) ;

    }

Á½¸öº¯ÊýµÄÑÓʱЧ¹ûÏàËÆ£¬µ«¼¸ºõËùÓеÄC±àÒë¶ÔºóÒ»ÖÖº¯ÊýÉú³ÉµÄ´úÂë¾ù±ÈÇ°Ò»ÖÖ´úÂëÉÙ1~3¸ö×Ö½Ú£¬ÒòΪ¼¸ºõËùÓеÄMCU¾ùÓÐΪ0תÒƵÄÖ¸Á²ÉÓúóÒ»ÖÖ·½Ê½Äܹ»Éú³ÉÕâÀàÖ¸Áî¡£ÔÚʹÓÃwhileÑ­»·Ê±Ò²Ò»Ñù£¬Ê¹ÓÃ×Ô¼õÖ¸Áî¿ØÖÆÑ­»·»á±ÈʹÓÃ×Ô¼ÓÖ¸Áî¿ØÖÆÑ­»·Éú³ÉµÄ´úÂë¸üÉÙ1~3¸ö×Öĸ¡£µ«ÊÇÔÚÑ­»·ÖÐÓÐͨ¹ýÑ­»·±äÁ¿¡°i¡±¶ÁдÊý×éµÄÖ¸Áîʱ£¬Ê¹ÓÃÔ¤¼õÑ­»·ÓпÉÄÜʹÊý×鳬½ç£¬ÒªÒýÆð×¢Òâ¡£

£¨4£©¡¢whileÑ­»·ºÍdo¡­whileÑ­»·

ÓÃwhileÑ­»·Ê±ÓÐÒÔÏÂÁ½ÖÖÑ­»·ÐÎʽ£º

unsigned int i;

    i=0;

    while (i<1000)

    {

        i++;

           //Óû§³ÌÐò

    }

»ò£º

unsigned int i;

    i=1000;

do

{

          i--;

          //Óû§³ÌÐò

}

while (i>0);

ÔÚÕâÁ½ÖÖÑ­»·ÖУ¬Ê¹ÓÃdo¡­whileÑ­»·±àÒëºóÉú³ÉµÄ´úÂëµÄ³¤¶È¶ÌÓÚwhileÑ­»·¡£

£¨6£©¡¢Ñ­»·Õ¹¿ª

ÕâÊǾ­µäµÄËÙ¶ÈÓÅ»¯£¬µ«Ðí¶à±àÒë³ÌÐò(Èçgcc -funroll-loops)ÄÜ×Ô¶¯Íê³ÉÕâ¸öÊ£¬ËùÒÔÏÖÔÚÄã×Ô¼ºÀ´ÓÅ»¯Õâ¸öÏÔµÃЧ¹û²»Ã÷ÏÔ¡£

¾É´úÂë:

for (i = 0; i < 100; i++)

{

do_stuff(i);

}

дúÂë:

for (i = 0; i < 100; )

{

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

do_stuff(i); i++;

}

¿ÉÒÔ¿´³ö£¬Ð´úÂëÀï±È½ÏÖ¸ÁîÓÉ100´Î½µµÍΪ10´Î£¬Ñ­»·Ê±¼ä½ÚÔ¼ÁË90%¡£²»¹ý×¢Òâ:¶ÔÓÚÖмä±äÁ¿»ò½á¹û±»¸ü¸ÄµÄÑ­»·£¬±àÒë³ÌÐòÍùÍù¾Ü¾øÕ¹¿ª£¬(ŵ£ÔðÈÎßÂ)£¬Õâʱºò¾ÍÐèÒªÄã×Ô¼ºÀ´×öÕ¹¿ª¹¤×÷ÁË¡£

»¹ÓÐÒ»µãÇë×¢Ò⣬ÔÚÓÐÄÚ²¿Ö¸ÁîcacheµÄCPUÉÏ(ÈçMMXоƬ)£¬ÒòΪѭ»·Õ¹¿ªµÄ´úÂëºÜ´ó£¬ÍùÍùcacheÒç³ö£¬Õâʱչ¿ªµÄ´úÂë»áƵ·±µØÔÚCPU µÄcacheºÍÄÚ´æÖ®¼äµ÷À´µ÷È¥£¬ÓÖÒòΪcacheËٶȺܸߣ¬ËùÒÔ´Ëʱѭ»·Õ¹¿ª·´¶ø»á±äÂý¡£»¹ÓоÍÊÇÑ­»·Õ¹¿ª»áÓ°ÏìʸÁ¿ÔËËãÓÅ»¯¡£

£¨6£©¡¢Ñ­»·Ç¶Ì×

°ÑÏà¹ØÑ­»··Åµ½Ò»¸öÑ­»·ÀҲ»á¼Ó¿ìËٶȡ£

¾É´úÂë:

for (i = 0; i < MAX; i++)         /* initialize 2d array to 0's */

    for (j = 0; j < MAX; j++)

        a[i][j] = 0.0;

    for (i = 0; i < MAX; i++)        /* put 1's along the diagonal */

        a[i][i] = 1.0;

дúÂë:

for (i = 0; i < MAX; i++)         /* initialize 2d array to 0's */

{

    for (j = 0; j < MAX; j++)

        a[i][j] = 0.0;

    a[i][i] = 1.0;                            /* put 1's along the diagonal */

}

£¨7£©¡¢SwitchÓï¾äÖиù¾Ý·¢ÉúƵÂÊÀ´½øÐÐcaseÅÅÐò

Switch ¿ÉÄÜת»¯³É¶àÖÖ²»Í¬Ëã·¨µÄ´úÂë¡£ÆäÖÐ×î³£¼ûµÄÊÇÌøת±íºÍ±È½ÏÁ´/Ê÷¡£µ±switchÓñȽÏÁ´µÄ·½Ê½×ª»¯Ê±£¬±àÒëÆ÷»á²úÉúif-else-ifµÄǶÌ×´úÂ룬²¢°´ÕÕ˳Ðò½øÐбȽϣ¬Æ¥Åäʱ¾ÍÌøתµ½Âú×ãÌõ¼þµÄÓï¾äÖ´ÐС£ËùÒÔ¿ÉÒÔ¶ÔcaseµÄÖµÒÀÕÕ·¢ÉúµÄ¿ÉÄÜÐÔ½øÐÐÅÅÐò£¬°Ñ×îÓпÉÄܵķÅÔÚµÚһ룬ÕâÑù¿ÉÒÔÌá¸ßÐÔÄÜ¡£´ËÍ⣬ÔÚcaseÖÐÍƼöʹÓÃСµÄÁ¬ÐøµÄÕûÊý£¬ÒòΪÔÚÕâÖÖÇé¿öÏ£¬ËùÓеıàÒëÆ÷¶¼¿ÉÒÔ°Ñswitch ת»¯³ÉÌøת±í¡£

²»ºÃµÄ´úÂ룺

int days_in_month£¬ short_months£¬ normal_months£¬ long_months£»

¡£¡£¡£¡£¡£¡£

switch (days_in_month)

{

¡¡¡¡case 28:

¡¡¡¡case 29:

¡¡¡¡¡¡¡¡short_months ++£»

¡¡¡¡¡¡¡¡break£»

¡¡¡¡case 30:

¡¡¡¡¡¡¡¡normal_months ++£»

¡¡¡¡¡¡¡¡break£»

¡¡¡¡case 31:

¡¡¡¡¡¡¡¡long_months ++£»

¡¡¡¡¡¡¡¡break£»

¡¡¡¡default:

¡¡¡¡¡¡¡¡cout << "month has fewer than 28 or more than 31 days" << endl£»

¡¡¡¡¡¡¡¡break£»

}

ÍƼöµÄ´úÂ룺

int days_in_month£¬ short_months£¬ normal_months£¬ long_months£»

¡£¡£¡£¡£¡£¡£

switch (days_in_month)

{

¡¡¡¡case 31:

¡¡¡¡¡¡¡¡long_months ++£»

¡¡¡¡¡¡¡¡break£»

¡¡¡¡case 30:

¡¡¡¡¡¡¡¡normal_months ++£»

¡¡¡¡¡¡¡¡break£»

¡¡¡¡case 28:

¡¡¡¡case 29:

¡¡¡¡¡¡¡¡short_months ++£»

¡¡¡¡¡¡¡¡break£»

¡¡¡¡default:

¡¡¡¡¡¡¡¡cout << "month has fewer than 28 or more than 31 days" << endl£»

¡¡¡¡¡¡¡¡break£»

}  

£¨8£©¡¢½«´óµÄswitchÓï¾äתΪǶÌ×switchÓï¾ä

µ±switchÓï¾äÖеÄcase±êºÅºÜ¶àʱ£¬ÎªÁ˼õÉٱȽϵĴÎÊý£¬Ã÷ÖǵÄ×ö·¨ÊÇ°Ñ´óswitchÓï¾äתΪǶÌ×switchÓï¾ä¡£°Ñ·¢ÉúƵÂʸߵÄcase ±êºÅ·ÅÔÚÒ»¸öswitchÓï¾äÖУ¬²¢ÇÒÊÇǶÌ×switchÓï¾äµÄ×îÍâ²ã£¬·¢ÉúÏà¶ÔƵÂÊÏà¶ÔµÍµÄcase±êºÅ·ÅÔÚÁíÒ»¸öswitchÓï¾äÖС£±ÈÈ磬ÏÂÃæµÄ³ÌÐò¶Î°ÑÏà¶Ô·¢ÉúƵÂʵ͵ÄÇé¿ö·ÅÔÚȱʡµÄcase±êºÅÄÚ¡£

pMsg=ReceiveMessage();

        switch (pMsg->type)

        {

        case FREQUENT_MSG1:

        handleFrequentMsg();

        break;

        case FREQUENT_MSG2:

        handleFrequentMsg2();

        break;

        ¡£¡£¡£¡£¡£¡£

        case FREQUENT_MSGn:

        handleFrequentMsgn();

        break;

        default:                     //ǶÌײ¿·ÖÓÃÀ´´¦Àí²»¾­³£·¢ÉúµÄÏûÏ¢

        switch (pMsg->type)

        {

        case INFREQUENT_MSG1:

        handleInfrequentMsg1();

        break;

        case INFREQUENT_MSG2:

        handleInfrequentMsg2();

        break;

        ¡£¡£¡£¡£¡£¡£

        case INFREQUENT_MSGm:

        handleInfrequentMsgm();

        break;

        }

        }

Èç¹ûswitchÖÐÿһÖÖÇé¿ö϶¼ÓкܶàµÄ¹¤×÷Òª×ö£¬ÄÇô°ÑÕû¸öswitchÓï¾äÓÃÒ»¸öÖ¸Ïòº¯ÊýÖ¸ÕëµÄ±íÀ´Ìæ»»»á¸ü¼ÓÓÐЧ£¬±ÈÈçÏÂÃæµÄswitchÓï¾ä£¬ÓÐÈýÖÖÇé¿ö£º

    enum MsgType{Msg1£¬ Msg2£¬ Msg3}

        switch (ReceiveMessage()

        {

        case Msg1;

        ¡£¡£¡£¡£¡£¡£

        case Msg2;

        ¡£¡£¡£¡£¡£

        case Msg3;

        ¡£¡£¡£¡£¡£

        }

ΪÁËÌá¸ßÖ´ÐÐËٶȣ¬ÓÃÏÂÃæÕâ¶Î´úÂëÀ´Ìæ»»Õâ¸öÉÏÃæµÄswitchÓï¾ä¡£

        /*×¼±¸¹¤×÷*/

        int handleMsg1(void);

        int handleMsg2(void);

        int handleMsg3(void);

        /*´´½¨Ò»¸öº¯ÊýÖ¸ÕëÊý×é*/

        int (*MsgFunction [])()={handleMsg1£¬ handleMsg2£¬ handleMsg3};

        /*ÓÃÏÂÃæÕâÐиüÓÐЧµÄ´úÂëÀ´Ìæ»»switchÓï¾ä*/

        status=MsgFunction[ReceiveMessage()]();

£¨9£©¡¢Ñ­»·×ªÖÃ

ÓÐЩ»úÆ÷¶ÔJNZ(Ϊ0תÒÆ)ÓÐÌرðµÄÖ¸Áî´¦Àí£¬Ëٶȷdz£¿ì£¬Èç¹ûÄãµÄÑ­»·¶Ô·½Ïò²»Ãô¸Ð£¬¿ÉÒÔÓÉ´óÏòСѭ»·¡£

¾É´úÂë:

for (i = 1; i <= MAX; i++)

{

   ¡£¡£¡£

 }

дúÂë:

i = MAX+1;

while (--i)

{

¡£¡£¡£

}

²»¹ýǧÍò×¢Ò⣬Èç¹ûÖ¸Õë²Ù×÷ʹÓÃÁËiÖµ£¬ÕâÖÖ·½·¨¿ÉÄÜÒýÆðÖ¸ÕëÔ½½çµÄÑÏÖØ´íÎó(i = MAX+1;)¡£µ±È»Äã¿ÉÒÔͨ¹ý¶Ôi×ö¼Ó¼õÔËËãÀ´¾ÀÕý£¬µ«ÊÇÕâÑù¾ÍÆð²»µ½¼ÓËÙµÄ×÷Ó㬳ý·ÇÀàËÆÓÚÒÔÏÂÇé¿ö£º

¾É´úÂë:

char a[MAX+5];

for (i = 1; i <= MAX; i++)

{

*(a+i+4)=0;

}

дúÂë:

i = MAX+1;

while (--i)

{

      *(a+i+4)=0;

}

£¨10£©¡¢¹«ÓôúÂë¿é

һЩ¹«Óô¦ÀíÄ£¿é£¬ÎªÁËÂú×ã¸÷ÖÖ²»Í¬µÄµ÷ÓÃÐèÒª£¬ÍùÍùÔÚÄÚ²¿²ÉÓÃÁË´óÁ¿µÄif-then-else½á¹¹£¬ÕâÑùºÜ²»ºÃ£¬ÅжÏÓï¾äÈç¹ûÌ«¸´ÔÓ£¬»áÏûºÄ´óÁ¿µÄʱ¼äµÄ£¬Ó¦¸Ã¾¡Á¿¼õÉÙ¹«ÓôúÂë¿éµÄʹÓá£(ÈκÎÇé¿öÏ£¬¿Õ¼äÓÅ»¯ºÍʱ¼äÓÅ»¯¶¼ÊǶÔÁ¢µÄ--¶«Â¥)¡£µ±È»£¬Èç¹û½ö½öÊÇÒ»¸ö(3==x)Ö®ÀàµÄ¼òµ¥Åжϣ¬Êʵ±Ê¹ÓÃһϣ¬Ò²»¹ÊÇÔÊÐíµÄ¡£¼Çס£¬ÓÅ»¯ÓÀÔ¶ÊÇ×·ÇóÒ»ÖÖƽºâ£¬¶ø²»ÊÇ×ß¼«¶Ë¡£

£¨11£©ÌáÉýÑ­»·µÄÐÔÄÜ

ÒªÌáÉýÑ­»·µÄÐÔÄÜ£¬¼õÉÙ¶àÓàµÄ³£Á¿¼ÆËã·Ç³£ÓÐÓ㨱ÈÈ磬²»ËæÑ­»·±ä»¯µÄ¼ÆË㣩¡£

²»ºÃµÄ´úÂë(ÔÚfor()Öаüº¬²»±äµÄif())£º

for( i ¡£¡£¡£ )

{

¡¡¡¡if( CONSTANT0 )

¡¡¡¡{

¡¡¡¡¡¡¡¡DoWork0( i )£» // ¼ÙÉèÕâÀï²»¸Ä±äCONSTANT0µÄÖµ

¡¡¡¡}

¡¡¡¡else

¡¡¡¡{

¡¡¡¡¡¡¡¡DoWork1( i )£» // ¼ÙÉèÕâÀï²»¸Ä±äCONSTANT0µÄÖµ

¡¡¡¡}

}

ÍƼöµÄ´úÂ룺

if( CONSTANT0 )

{

¡¡¡¡for( i ¡£¡£¡£ )

¡¡¡¡{

¡¡¡¡¡¡¡¡DoWork0( i )£»

¡¡¡¡}

}

else

{

¡¡¡¡for( i ¡£¡£¡£ )

¡¡¡¡{

¡¡¡¡¡¡¡¡DoWork1( i )£»

¡¡¡¡}

Èç¹ûÒѾ­ÖªµÀif()µÄÖµ£¬ÕâÑù¿ÉÒÔ±ÜÃâÖظ´¼ÆËã¡£ËäÈ»²»ºÃµÄ´úÂëÖеķÖÖ§¿ÉÒÔ¼òµ¥µØÔ¤²â£¬µ«ÊÇÓÉÓÚÍƼöµÄ´úÂëÔÚ½øÈëÑ­»·Ç°·ÖÖ§ÒѾ­È·¶¨£¬¾Í¿ÉÒÔ¼õÉÙ¶Ô·ÖÖ§Ô¤²âµÄÒÀÀµ¡£

£¨12£©¡¢Ñ¡ÔñºÃµÄÎÞÏÞÑ­»·

ÔÚ±à³ÌÖУ¬ÎÒÃdz£³£ÐèÒªÓõ½ÎÞÏÞÑ­»·£¬³£ÓõÄÁ½ÖÖ·½·¨ÊÇwhile (1) ºÍ for (£»£»)¡£ÕâÁ½ÖÖ·½·¨Ð§¹ûÍêÈ«Ò»Ñù£¬µ«ÄÇÒ»ÖÖ¸üºÃÄØ£¿È»ÎÒÃÇ¿´¿´ËüÃDZàÒëºóµÄ´úÂ룺

±àÒëÇ°£º

while (1)£»

±àÒëºó£º

mov eax£¬1

test eax£¬eax

je foo+23h

jmp foo+18h 

±àÒëÇ°£º

for (£»£»)£»

±àÒëºó£º

jmp foo+23h

ÏÔÈ»£¬for (£»£»)Ö¸ÁîÉÙ£¬²»Õ¼ÓüĴæÆ÷£¬¶øÇÒûÓÐÅжϡ¢Ìøת£¬±Èwhile (1)ºÃ¡£

6¡¢Ìá¸ßCPUµÄ²¢ÐÐÐÔ

£¨1£©Ê¹Óò¢ÐдúÂë

¾¡¿ÉÄܰѳ¤µÄÓÐÒÀÀµµÄ´úÂëÁ´·Ö½â³É¼¸¸ö¿ÉÒÔÔÚÁ÷Ë®ÏßÖ´Ðе¥ÔªÖв¢ÐÐÖ´ÐеÄûÓÐÒÀÀµµÄ´úÂëÁ´¡£ºÜ¶à¸ß¼¶ÓïÑÔ£¬°üÀ¨C++£¬²¢²»¶Ô²úÉúµÄ¸¡µã±í´ïʽÖØÐÂÅÅÐò£¬ÒòΪÄÇÊÇÒ»¸öÏ൱¸´ÔӵĹý³Ì¡£ÐèҪעÒâµÄÊÇ£¬ÖØÅÅÐòµÄ´úÂëºÍÔ­À´µÄ´úÂëÔÚ´úÂëÉÏÒ»Ö²¢²»µÈ¼ÛÓÚ¼ÆËã½á¹ûÒ»Ö£¬ÒòΪ¸¡µã²Ù×÷ȱ·¦¾«È·¶È¡£ÔÚһЩÇé¿öÏ£¬ÕâЩÓÅ»¯¿ÉÄܵ¼ÖÂÒâÁÏÖ®ÍâµÄ½á¹û¡£ÐÒÔ˵ÄÊÇ£¬Ôڴ󲿷ÖÇé¿öÏ£¬×îºó½á¹û¿ÉÄÜÖ»ÓÐ×î²»ÖØÒªµÄ루¼´×îµÍ룩ÊÇ´íÎóµÄ¡£

²»ºÃµÄ´úÂ룺

double a[100]£¬ sum£»

int i£»

sum = 0.0f£»

for (i=0£» i<100£» i++)

sum += a[i]£»

ÍƼöµÄ´úÂ룺

double a[100]£¬ sum1£¬ sum2£¬ sum3£¬ sum4£¬ sum£»

int i£»

sum1 = sum2 = sum3 = sum4 = 0.0£»

for (i = 0£» i < 100£» i += 4)

{

¡¡¡¡sum1 += a[i]£»

¡¡¡¡sum2 += a[i+1]£»

¡¡¡¡sum3 += a[i+2]£»

¡¡¡¡sum4 += a[i+3]£»

}

sum = (sum4+sum3)+(sum1+sum2)£» 

ҪעÒâµÄÊÇ£ºÊ¹ÓÃ4··Ö½âÊÇÒòΪÕâÑùʹÓÃÁË4¶ÎÁ÷Ë®Ï߸¡µã¼Ó·¨£¬¸¡µã¼Ó·¨µÄÿһ¸ö¶ÎÕ¼ÓÃÒ»¸öʱÖÓÖÜÆÚ£¬±£Ö¤ÁË×î´óµÄ×ÊÔ´ÀûÓÃÂÊ¡£

£¨2£©±ÜÃâûÓбØÒªµÄ¶ÁдÒÀÀµ

µ±Êý¾Ý±£´æµ½ÄÚ´æʱ´æÔÚ¶ÁдÒÀÀµ£¬¼´Êý¾Ý±ØÐëÔÚÕýȷдÈëºó²ÅÄÜÔٴζÁÈ¡¡£ËäÈ»AMD AthlonµÈCPUÓмÓËÙ¶ÁдÒÀÀµÑÓ³ÙµÄÓ²¼þ£¬ÔÊÐíÔÚÒª±£´æµÄÊý¾Ý±»Ð´ÈëÄÚ´æÇ°¶ÁÈ¡³öÀ´£¬µ«ÊÇ£¬Èç¹û±ÜÃâÁ˶ÁдÒÀÀµ²¢°ÑÊý¾Ý±£´æÔÚÄÚ²¿¼Ä´æÆ÷ÖУ¬ËٶȻá¸ü¿ì¡£ÔÚÒ»¶ÎºÜ³¤µÄÓÖ»¥ÏàÒÀÀµµÄ´úÂëÁ´ÖУ¬±ÜÃâ¶ÁдÒÀÀµÏÔµÃÓÈÆäÖØÒª¡£Èç¹û¶ÁдÒÀÀµ·¢ÉúÔÚ²Ù×÷Êý×éʱ£¬Ðí¶à±àÒëÆ÷²»ÄÜ×Ô¶¯ÓÅ»¯´úÂëÒÔ±ÜÃâ¶ÁдÒÀÀµ¡£ËùÒÔÍƼö³ÌÐòÔ±ÊÖ¶¯È¥Ïû³ý¶ÁдÒÀÀµ£¬¾ÙÀýÀ´Ëµ£¬Òý½øÒ»¸ö¿ÉÒÔ±£´æÔڼĴæÆ÷ÖеÄÁÙʱ±äÁ¿¡£ÕâÑù¿ÉÒÔÓкܴóµÄÐÔÄÜÌáÉý¡£ÏÂÃæÒ»¶Î´úÂëÊÇÒ»¸öÀý×Ó£º

²»ºÃµÄ´úÂ룺

float x[VECLEN]£¬ y[VECLEN]£¬ z[VECLEN]£»

¡£¡£¡£¡£¡£¡£

for (unsigned int k = 1£» k < VECLEN£» k ++)

{

¡¡¡¡x[k] = x[k-1] + y[k]£»

}

for (k = 1£» k <VECLEN£» k++)

{

¡¡¡¡x[k] = z[k] * (y[k] - x[k-1])£»

}

ÍƼöµÄ´úÂ룺

float x[VECLEN]£¬ y[VECLEN]£¬ z[VECLEN]£»

¡£¡£¡£¡£¡£¡£

float t(x[0])£»

for (unsigned int k = 1£» k < VECLEN£» k ++)

{

¡¡¡¡t = t + y[k]£»

¡¡¡¡x[k] = t£»

}

t = x[0]£»

for (k = 1£» k <£» VECLEN£» k ++)

{

¡¡¡¡t = z[k] * (y[k] - t)£»

¡¡¡¡x[k] = t£»

7¡¢Ñ­»·²»±ä¼ÆËã

¶ÔÓÚһЩ²»ÐèҪѭ»·±äÁ¿²Î¼ÓÔËËãµÄ¼ÆËãÈÎÎñ¿ÉÒÔ°ÑËüÃǷŵ½Ñ­»·ÍâÃ棬ÏÖÔÚÐí¶à±àÒëÆ÷»¹ÊÇÄÜ×Ô¼º¸ÉÕâ¼þÊ£¬²»¹ý¶ÔÓÚÖмäʹÓÃÁ˱äÁ¿µÄËãʽËüÃǾͲ»¸Ò¶¯ÁË£¬ËùÒԺܶàÇé¿öÏÂÄ㻹µÃ×Ô¼º¸É¡£¶ÔÓÚÄÇЩÔÚÑ­»·Öе÷Óõĺ¯Êý£¬·²ÊÇû±ØÒªÖ´Ðжà´ÎµÄ²Ù×÷ͨͨÌá³öÀ´£¬·Åµ½Ò»¸öinitº¯ÊýÀѭ»·Ç°µ÷Óá£ÁíÍ⾡Á¿¼õÉÙιʳ´ÎÊý£¬Ã»±ØÒªµÄ»°¾¡Á¿²»¸øËü´«²Î£¬ÐèҪѭ»·±äÁ¿µÄ»°ÈÃËü×Ô¼º½¨Á¢Ò»¸ö¾²Ì¬Ñ­»·±äÁ¿×Ô¼ºÀÛ¼Ó£¬ËٶȻá¿ìÒ»µã¡£

»¹ÓоÍÊǽṹÌå·ÃÎÊ£¬¶«Â¥µÄ¾­Ñ飬·²ÊÇÔÚÑ­»·Àï¶ÔÒ»¸ö½á¹¹ÌåµÄÁ½¸öÒÔÉϵÄÔªËØÖ´ÐÐÁË·ÃÎÊ£¬¾ÍÓбØÒª½¨Á¢Öмä±äÁ¿ÁË(½á¹¹ÕâÑù£¬ÄÇC++µÄ¶ÔÏóÄØ?ÏëÏë¿´)£¬¿´ÏÂÃæµÄÀý×Ó:

¾É´úÂë:

    total =

    a->b->c[4]->aardvark +

    a->b->c[4]->baboon +

    a->b->c[4]->cheetah +

    a->b->c[4]->dog;

дúÂë:

    struct animals * temp = a->b->c[4];

    total =

    temp->aardvark +

    temp->baboon +

    temp->cheetah +

    temp->dog;

һЩÀϵÄCÓïÑÔ±àÒëÆ÷²»×ö¾ÛºÏÓÅ»¯£¬¶ø·ûºÏANSI¹æ·¶µÄеıàÒëÆ÷¿ÉÒÔ×Ô¶¯Íê³ÉÕâ¸öÓÅ»¯£¬¿´Àý×Ó:

    float a£¬ b£¬ c£¬ d£¬ f£¬ g;

    ¡£¡£¡£

    a = b / c * d;

    f = b * g / c;

ÕâÖÖд·¨µ±È»ÒªµÃ£¬µ«ÊÇûÓÐÓÅ»¯

    float a£¬ b£¬ c£¬ d£¬ f£¬ g;

    ¡£¡£¡£

    a = b / c * d;

    f = b / c * g;

Èç¹ûÕâôдµÄ»°£¬Ò»¸ö·ûºÏANSI¹æ·¶µÄеıàÒëÆ÷¿ÉÒÔÖ»¼ÆËãb/cÒ»´Î£¬È»ºó½«½á¹û´úÈëµÚ¶þ¸öʽ×Ó£¬½ÚÔ¼ÁËÒ»´Î³ý·¨ÔËËã¡£

8¡¢º¯ÊýÓÅ»¯

£¨1£©Inlineº¯Êý

ÔÚC++ÖУ¬¹Ø¼ü×ÖInline¿ÉÒÔ±»¼ÓÈëµ½Èκκ¯ÊýµÄÉùÃ÷ÖС£Õâ¸ö¹Ø¼ü×ÖÇëÇó±àÒëÆ÷Óú¯ÊýÄÚ²¿µÄ´úÂëÌæ»»ËùÓжÔÓÚÖ¸³öµÄº¯ÊýµÄµ÷Óá£ÕâÑù×öÔÚÁ½¸ö·½Ãæ¿ìÓÚº¯Êýµ÷Ó㺵ÚÒ»£¬Ê¡È¥Á˵÷ÓÃÖ¸ÁîÐèÒªµÄÖ´ÐÐʱ¼ä£»µÚ¶þ£¬Ê¡È¥ÁË´«µÝ±äÔªºÍ´«µÝ¹ý³ÌÐèÒªµÄʱ¼ä¡£µ«ÊÇʹÓÃÕâÖÖ·½·¨ÔÚÓÅ»¯³ÌÐòËٶȵÄͬʱ£¬³ÌÐò³¤¶È±ä´óÁË£¬Òò´ËÐèÒª¸ü¶àµÄROM¡£Ê¹ÓÃÕâÖÖÓÅ»¯ÔÚInlineº¯ÊýƵ·±µ÷Óò¢ÇÒÖ»°üº¬¼¸ÐдúÂëµÄʱºòÊÇ×îÓÐЧµÄ¡£

£¨2£©²»¶¨Ò岻ʹÓõķµ»ØÖµ

º¯Êý¶¨Òå²¢²»ÖªµÀº¯Êý·µ»ØÖµÊÇ·ñ±»Ê¹Ó㬼ÙÈç·µ»ØÖµ´ÓÀ´²»»á±»Óõ½£¬Ó¦¸ÃʹÓÃvoidÀ´Ã÷È·ÉùÃ÷º¯Êý²»·µ»ØÈκÎÖµ¡£

£¨3£©¼õÉÙº¯Êýµ÷ÓòÎÊý

    ʹÓÃÈ«¾Ö±äÁ¿±Èº¯Êý´«µÝ²ÎÊý¸ü¼ÓÓÐЧÂÊ¡£ÕâÑù×öÈ¥³ýÁ˺¯Êýµ÷ÓòÎÊýÈëÕ»ºÍº¯ÊýÍê³Éºó²ÎÊý³öÕ»ËùÐèÒªµÄʱ¼ä¡£È»¶ø¾ö¶¨Ê¹ÓÃÈ«¾Ö±äÁ¿»áÓ°Ïì³ÌÐòµÄÄ£¿é»¯ºÍÖØÈ룬¹ÊÒªÉ÷ÖØʹÓá£

£¨4£©ËùÓк¯Êý¶¼Ó¦¸ÃÓÐÔ­ÐͶ¨Òå

Ò»°ãÀ´Ëµ£¬ËùÓк¯Êý¶¼Ó¦¸ÃÓÐÔ­ÐͶ¨Òå¡£Ô­ÐͶ¨Òå¿ÉÒÔ´«´ï¸ø±àÒëÆ÷¸ü¶àµÄ¿ÉÄÜÓÃÓÚÓÅ»¯µÄÐÅÏ¢¡£

£¨5£©¾¡¿ÉÄÜʹÓó£Á¿(const)

¾¡¿ÉÄÜʹÓó£Á¿(const)¡£C++ ±ê×¼¹æ¶¨£¬Èç¹ûÒ»¸öconstÉùÃ÷µÄ¶ÔÏóµÄµØÖ·²»±»»ñÈ¡£¬ÔÊÐí±àÒëÆ÷²»¶ÔËü·ÖÅä´¢´æ¿Õ¼ä¡£ÕâÑù¿ÉÒÔʹ´úÂë¸üÓÐЧÂÊ£¬¶øÇÒ¿ÉÒÔÉú³É¸üºÃµÄ´úÂë¡£

£¨6£©°Ñ±¾µØº¯ÊýÉùÃ÷Ϊ¾²Ì¬µÄ(static)

Èç¹ûÒ»¸öº¯ÊýÖ»ÔÚʵÏÖËüµÄÎļþÖб»Ê¹Ó㬰ÑËüÉùÃ÷Ϊ¾²Ì¬µÄ(static)ÒÔÇ¿ÖÆʹÓÃÄÚ²¿Á¬½Ó¡£·ñÔò£¬Ä¬ÈϵÄÇé¿öÏ»á°Ñº¯Êý¶¨ÒåΪÍⲿÁ¬½Ó¡£ÕâÑù¿ÉÄÜ»áÓ°ÏìijЩ±àÒëÆ÷µÄÓÅ»¯¡ª¡ª±ÈÈ磬×Ô¶¯ÄÚÁª¡£

9¡¢²ÉÓõݹé

ÓëLISPÖ®ÀàµÄÓïÑÔ²»Í¬£¬CÓïÑÔÒ»¿ªÊ¼¾Í²¡Ì¬µØϲ»¶ÓÃÖظ´´úÂëÑ­»·£¬Ðí¶àC³ÌÐòÔ±¶¼Êdzý·ÇËã·¨ÒªÇ󣬼á¾ö²»Óõݹ顣ÊÂʵÉÏ£¬C±àÒëÆ÷ÃǶÔÓÅ»¯µÝ¹éµ÷ÓÃÒ»µã¶¼²»·´¸Ð£¬Ïà·´£¬ËüÃÇ»¹ºÜϲ»¶¸ÉÕâ¼þÊ¡£Ö»ÓÐÔڵݹ麯ÊýÐèÒª´«µÝ´óÁ¿²ÎÊý£¬¿ÉÄÜÔì³ÉÆ¿¾±µÄʱºò£¬²ÅÓ¦¸ÃʹÓÃÑ­»·´úÂ룬ÆäËûʱºò£¬»¹ÊÇÓõݹéºÃЩ¡£

10¡¢±äÁ¿

£¨1£©register±äÁ¿

ÔÚÉùÃ÷¾Ö²¿±äÁ¿µÄʱºò¿ÉÒÔʹÓÃregister¹Ø¼ü×Ö¡£Õâ¾ÍʹµÃ±àÒëÆ÷°Ñ±äÁ¿·ÅÈëÒ»¸ö¶àÓÃ;µÄ¼Ä´æÆ÷ÖУ¬¶ø²»ÊÇÔÚ¶ÑÕ»ÖУ¬ºÏÀíʹÓÃÕâÖÖ·½·¨¿ÉÒÔÌá¸ßÖ´ÐÐËٶȡ£º¯Êýµ÷ÓÃÔ½ÊÇƵ·±£¬Ô½ÊÇ¿ÉÄÜÌá¸ß´úÂëµÄËٶȡ£

ÔÚ×îÄÚ²ãÑ­»·±ÜÃâʹÓÃÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿£¬³ý·ÇÄãÄÜÈ·¶¨ËüÔÚÑ­»·ÖÜÆÚÖв»»á¶¯Ì¬±ä»¯£¬´ó¶àÊý±àÒëÆ÷ÓÅ»¯±äÁ¿¶¼Ö»ÓÐÒ»¸ö°ì·¨£¬¾ÍÊǽ«ËûÃÇÖóɼĴæÆ÷±äÁ¿£¬¶ø¶ÔÓÚ¶¯Ì¬±äÁ¿£¬ËüÃǸɴà·ÅÆú¶ÔÕû¸ö±í´ïʽµÄÓÅ»¯¡£¾¡Á¿±ÜÃâ°ÑÒ»¸ö±äÁ¿µØÖ·´«µÝ¸øÁíÒ»¸öº¯Êý£¬ËäÈ»Õâ¸ö»¹ºÜ³£Óá£CÓïÑԵıàÒëÆ÷ÃÇ×ÜÊÇÏȼٶ¨Ã¿Ò»¸öº¯ÊýµÄ±äÁ¿¶¼ÊÇÄÚ²¿±äÁ¿£¬ÕâÊÇÓÉËüµÄ»úÖƾö¶¨µÄ£¬ÔÚÕâÖÖÇé¿öÏ£¬ËüÃǵÄÓÅ»¯Íê³ÉµÃ×îºÃ¡£µ«ÊÇ£¬Ò»µ©Ò»¸ö±äÁ¿ÓпÉÄܱ»±ðµÄº¯Êý¸Ä±ä£¬Õâ°ïÐֵܾÍÔÙÒ²²»¸Ò°Ñ±äÁ¿·Åµ½¼Ä´æÆ÷ÀïÁË£¬ÑÏÖØÓ°ÏìËٶȡ£¿´Àý×Ó£º

a = b();

c(&d);

ÒòΪdµÄµØÖ·±»cº¯ÊýʹÓã¬ÓпÉÄܱ»¸Ä±ä£¬±àÒëÆ÷²»¸Ò°ÑËü³¤Ê±¼äµÄ·ÅÔڼĴæÆ÷Àһµ©ÔËÐе½c(&d)£¬±àÒëÆ÷¾Í°ÑËü·Å»ØÄڴ棬Èç¹ûÔÚÑ­»·À»áÔì³ÉN´ÎƵ·±µÄÔÚÄÚ´æºÍ¼Ä´æÆ÷Ö®¼ä¶ÁдdµÄ¶¯×÷£¬ÖÚËùÖÜÖª£¬CPUÔÚϵͳ×ÜÏßÉϵĶÁдËÙ¶ÈÂýµÃºÜ¡£±ÈÈçÄãµÄÈüÑî300£¬CPUÖ÷Ƶ300£¬×ÜÏßËÙ¶È×î¶à66M£¬ÎªÁËÒ»¸ö×ÜÏ߶Á£¬CPU¿ÉÄÜÒªµÈ4-5¸öÖÜÆÚ£¬µÃ¡£¡£µÃ¡£¡£µÃ¡£¡£ÏëÆðÀ´¶¼´ò²ü¡£

£¨2£©¡¢Í¬Ê±ÉùÃ÷¶à¸ö±äÁ¿ÓÅÓÚµ¥¶ÀÉùÃ÷±äÁ¿

£¨3£©¡¢¶Ì±äÁ¿ÃûÓÅÓÚ³¤±äÁ¿Ãû£¬Ó¦¾¡Á¿Ê¹±äÁ¿Ãû¶ÌÒ»µã

£¨4£©¡¢ÔÚÑ­»·¿ªÊ¼Ç°ÉùÃ÷±äÁ¿

11¡¢Ê¹ÓÃǶÌ×µÄif½á¹¹

ÔÚif½á¹¹ÖÐÈç¹ûÒªÅжϵIJ¢ÁÐÌõ¼þ½Ï¶à£¬×îºÃ½«ËüÃDzð·Ö³É¶à¸öif½á¹¹£¬È»ºóǶÌ×ÔÚÒ»Æð£¬ÕâÑù¿ÉÒÔ±ÜÃâÎÞνµÄÅжϡ£

˵Ã÷£º

ÉÏÃæµÄÓÅ»¯·½°¸ÓÉÍõÈ«Ã÷ÊÕ¼¯ÕûÀí¡£ºÜ¶à×ÊÁÏÀ´Ô´ÓëÍøÉÏ£¬³ö´¦²»Ï飬Ôڴ˶ÔËùÓÐ×÷ÕßÒ»²¢ÖÂл£¡

¸Ã·½°¸Ö÷ÒªÊÇ¿¼Âǵ½ÔÚǶÈëʽ¿ª·¢ÖжԳÌÐòÖ´ÐÐËٶȵÄÒªÇóÌرð¸ß£¬ËùÒԸ÷½°¸Ö÷ÒªÊÇΪÁËÓÅ»¯³ÌÐòµÄÖ´ÐÐËٶȡ£

×¢Ò⣺ÓÅ»¯ÊÇÓвàÖصãµÄ£¬ÓÅ»¯ÊÇÒ»ÃÅƽºâµÄÒÕÊõ£¬ËüÍùÍùÒªÒÔÎþÉü³ÌÐòµÄ¿É¶ÁÐÔ»òÕßÔö¼Ó´úÂ볤¶ÈΪ´ú¼Û¡£

(ÈκÎÇé¿öÏ£¬¿Õ¼äÓÅ»¯ºÍʱ¼äÓÅ»¯¶¼ÊǶÔÁ¢µÄ--¶«Â¥)¡£