|Code| 萬用物件指標 void* 是什麼 ?

寫習慣 C語言的一開始看到這個應該覺得莫名其妙。

不過這個在 C++可是非常實用的呢~~

他的用法有幾種,我目前知道的如下:

      • 未定型的指標,可以等到需要轉型時再指定型別:
        void *p1;
        int *p2;
        p1 = p2;
      • 也可以放在函式參數裡,最後再決定要傳入什麼類型的指標
        void * memcpy( void *dest, const void *src, size_t len );
        void * memset( void * buffer, int c, size_t num);
      • 給 callback function 使用:
        用在沒有回傳值的 event function
        例如:|Code| 使用 function pointer 建立 Handler
        裡面的 int demo_funcA(int, uint8_t);
        改為 void demo_funcA(int, uint8_t);
        typedef int (*cmd_handler)(int,uint8_t);
        就要改為:typedef void (*cmd_handler)(int,uint8_t);

     

  • p.s.在 C++中,函式參數為void的意思是這個函數不需要任何參數

很方便的東西,特別是搭配 callback function 用~~

Comments are closed.

WordPress.com.

Up ↑