寫習慣 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
裡面的intdemo_funcA(int, uint8_t);
改為 void demo_funcA(int, uint8_t);
typedefint(*cmd_handler)(int,uint8_t);
就要改為:typedef void (*cmd_handler)(int,uint8_t);
- 未定型的指標,可以等到需要轉型時再指定型別:
-
- p.s.在 C++中,函式參數為void的意思是這個函數不需要任何參數
很方便的東西,特別是搭配 callback function 用~~