• ²©ÓÑ
  • a Naked World o World l Naked search searchu World e World Fodesijify z Szh searchssearcha Szh csearchs World e Szh rh Szh os Naked a Fodesijify c Szh ldsearchesearchr Fodesijify hÒ
  •  
     
     
     
     

    ÈÕÖ¾

     
     

    ¡¾×ª¡¿C½á¹¹ÌåÖеĺ¯ÊýÖ¸ÕëÓ뺯Êý  

    2011-05-19 14:28:32|  ·ÖÀࣺ ×ªÔØ²©ÎÄ |  ±êÇ©£º |×ֺŴóÖÐС ¶©ÔÄ

    °æÈ¨ÉùÃ÷£º×ªÔØÊ±ÇëÒÔ³¬Á´½ÓÐÎʽ±êÃ÷ÎÄÕÂԭʼ³ö´¦ºÍ×÷ÕßÐÅÏ¢¼°±¾ÉùÃ÷
    ÎÄÕ³ö´¦£ºlogs/3990457.html

    1. º¯ÊýÖ¸Õë
    Ò»°ãµÄº¯ÊýÖ¸Õë¿ÉÒÔÕâô¶¨Òå:
    int(*func)(int,int);
    ±íʾһ¸öÖ¸Ïòº¬ÓÐÁ½¸öint²ÎÊý²¢ÇÒ·µ»ØÖµÊÇintÐÎʽµÄÈκÎÒ»¸öº¯ÊýÖ¸Õë. ¼ÙÈç´æÔÚÕâÑùµÄÒ»¸öº¯Êý:
    int add2(int x,int y)
    {}
    ÄÇôÔÚʵ¼ÊʹÓÃÖ¸Õëfuncʱ¿ÉÒÔÕâÑùʵÏÖ:
    func=&add2; //Ö¸Õ븳ֵ,»òÕßfunc=add2; add2Óë&add2ÒâÒåÏàͬ
    printf("func(3,4)=%d\n",func(3,4));

    ÊÂʵÉÏ,ΪÁË´úÂëµÄÒÆÖ²¿¼ÂÇ,Ò»°ãʹÓÃtypedef¶¨Ò庯ÊýÖ¸ÕëÀàÐÍ.
    typedef int(*FUN)(int,int);
    FUN func=&add2;
    func();

    2.½á¹¹ÌåÖаüº¬º¯ÊýÖ¸Õë
    ÆäʵÔڽṹÌåÖÐ,Ò²¿ÉÒÔÏñÒ»°ã±äÁ¿Ò»Ñù,°üº¬º¯ÊýÖ¸Õë±äÁ¿.ÏÂÃæÊÇÒ»ÖÖ¼òµ¥µÄʵÏÖ.
    #include "stdio.h"
    struct DEMO
    {};
    int add2(int x,int y)
    {}
    void main()
    {}
    ÉÏÃæµÄÎļþ±£´æÎªmytest.c,ÔÚVC6.0ºÍgcc4ÖбàÒëͨ¹ý.

    3.½á¹¹ÌåÖеĺ¯Êý
    ¼ÈÈ»C++ÔÚ½éÉÜÀàµÄʱºò˵¹ý,ÀàÊÇÈ¡´ú½á¹¹ÌåµÄ.¿É¼û½á¹¹ÌåµÄ¹¦Äܲ¢·ÇÎÒÃÇÆ½Ê±Óõ½µÄÕâô¼òµ¥,ûÓÐÌ«¶àÈËÖªµÀ½á¹¹ÌåÖÐÒ²¿ÉÒÔÓÐ×Ô¼ºµÄº¯Êý³ÉÔ±.
    ¾Ù¸öÀý×Ó:
    #include "stdio.h"
    struct DEMO
    {}

    void func()//Ò»°ãº¯Êý
    {}
    };

    void main()
    {}

      ±£´æÎªmytest1.c , VC6.0ºÍgcc±àÒë¶¼»á³ö´í. Õâ¿ÉÄÜ˵Ã÷±ê×¼CÊDz»Ö§³Ö½á¹¹Ìå°üÀ¨º¯Êý³ÉÔ±ÐÎʽµÄ(ÒòΪºó׺.cʹµÃVC»ògccÑ¡Ôñc±àÒëÆ÷). µ«ÊÇÈç¹û½«Îļþºó׺¸ÄΪ.cpp(Ò²¾ÍÊÇÑ¡Ôñc++±àÒë),¾Í²»ÔÙÓдíÎóÁË,µÃµ½½á¹û:
    after init,m=33
    function of struct.

    Ò²¾ÍÊÇ˵,ÔÚC++ÖÐÔÊÐí½á¹¹Ìå°üº¬º¯Êý³ÉÔ±,¶ø±ê×¼C²»Ö§³Ö. ½øÒ»²½·¢ÏÖ,c++ÖÐÉõÖÁÔÊÐí½á¹¹ÌåÖк¬Óй¹Ô캯Êý¡¢ÖØÔØ¡¢public/privateµÈµÈ.ÕâÑù¿´À´£¬½á¹¹ÌåÕæµÄÓëÀàÔ½À´Ô½¿¿½üÏàËÆÁË!

    C++À©³äÁ˽ṹÌåµÄ¹¦ÄÜ¡£µ«C++ÖÐΪÁ˽éÉÜÃæÏò¶ÔÏóµÄÀà,È´µ­»¯ÁËͬÑù¾«²ÊµÄ½á¹¹Ìå¡£µ±ÎÒÃÇдһЩС³ÌÐò¶ø¾õµÃûÓбØÒªÈ¥¹¹ÔìÀàµÄʱºò£¬Ñ¡Ôñ½á¹¹Ìåȷʵ»á·½±ãºÜ¶à.
    ========================================
    º¯ÊýÖ¸ÕëµÄ˵Ã÷:
       ÒÑÖªº¯ÊýÖ¸Õ붨ÒåÉùÃ÷ float (*h)();
       ÔõôÀí½âÓï¾ä? (*(void (*)())0)(); 
       ÕâÊÇÒ»¸öCÓï¾ä£¬±íʾ(*p)(); ÆäÖÐpÖ¸Ïò0, 0±»Ç¿ÖÆ×ª»»³É(void (*)())¸ñʽ¡£
       »òÕßÓÃtypedef½«ÉÏÃæÊ½×Ó·Ö³ÉÁ½²½:
       typedef void (*pFUNC)(); //pFUNC±íʾһÖÖº¯ÊýÖ¸ÕëÀàÐÍ,ÕâÑùµÄº¯Êýʽvoid fun()ÐÎʽ.
       (*(pFunc)0)();

      ¶ÔÓÚÕâÒ»µã£¬ÔÚunix±à³Ìsignal·½ÃæÓõ½¹ý£¬ÈçÏÂ:
        signalº¯ÊýÔ­ÐÍ: void (*signal(int signo,void (*func)(int)))(int);
        ÆäµÚ¶þ¸ö²ÎÊýfuncÊÇÒ»¸övoidÐͺ¯ÊýÖ¸Õë(¸Ãº¯Êý²ÎÊýΪint)£¬²¢ÇÒ·µ»ØÒ»¸övoidÐͺ¯ÊýÖ¸Õë(¸Ãº¯Êý²ÎÊýΪint),¼ò»¯Õâ¸ö¶¨Ò壬 ¿ÉÒÔtypedef void Sigfunc(int);  È»ºósignalº¯ÊýÔ­ÐÎдΪ Sigfunc* signal(int,Sigfunc*);
         Èý¸ö³£Á¿ÓÃÓÚÌæ´úÕâÑùµÄÖ¸Õë¡£¶¨ÒåÈçÏÂ:
    #define SIG_ERR (void (*)())-1
    #define SIG_DFL (void (*)())0
    #define SIG_IGN (void (*)())1

    º¯ÊýÓ¦ÓÃ
    if(signal(SIGUSR1,sig_func)==SIG_ERR)
        err_sys("can't catch SIGUSR1");

      ÆÀÂÛÕâÕÅ
    ת·¢ÖÁ΢²©
    ת·¢ÖÁ΢²©
    0ÈË   ·ÖÏíµ½£º        
    ÔĶÁ(339)| ÆÀÂÛ(0)| ÒýÓà (0) |¾Ù±¨
     

    ÀúÊ·ÉϵĽñÌì

    Ïà¹ØÎÄÕÂ

    ×î½ü¶ÁÕß

    ÆÀÂÛ

    <#--×îÐÂÈÕÖ¾£¬Èº²©ÈÕÖ¾--> <#--ÍÆ¼öÈÕÖ¾--> <#--ÒýÓüǼ--> <#--²©Ö÷ÍÆ¼ö--> <#--Ëæ»úÔĶÁ--> <#--Ê×Ò³ÍÆ¼ö--> <#--Ïà¹ØÎÄÕÂ--> <#--ÀúÊ·ÉϵĽñÌì--> <#--ÓÒ±ßÄ£¿é½á¹¹--> <#--ÒýÓÃÄ£¿é½á¹¹--> <#--²©Ö÷·¢ÆðµÄͶƱ-->