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 用~~