What is void* ?

我目前知道的如下:

  • 未定型的指標,可以等到需要轉型時再指定型別: 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 用~~

Last updated