C 小知識之 Void 型別的引數賦值

2021-06-22 18:51:07 字數 481 閱讀 9658

如下函式定義:

std::string inittexture(void** depthtexbuf,int width, int height);

如果想呼叫此函式,depthtexbuf引數,應該怎麼宣告和初始化乙個變數,呼叫上面的函式時,作為實參傳入呢?

正確的變數宣告:

unsigned char* pdepthtexbuf;

depthtexid = inittexture((void**)&pdepthtexbuf,texwidth, texheight) ;

void*是無型別指標。

void**就是無型別指標的指標。

&取變數位址的運算子。

(型別)為強制轉換型別。

(void**)&變數,就是把變數的位址強制轉換為無型別指標的指標。

&pdepthtexbuf 等價於 void** depthtexbuf,他們都是指向指標的指標,只是型別不同而已,所以需要強轉一下。

C 小知識之 Void 型別的引數賦值

如下函式定義 std string inittexture void depthtexbuf,int width,int height 如果想呼叫此函式,d epthtexbuf引數,應該怎麼宣告和初始化乙個變數,呼叫上面的函式時,作為實參傳入呢?正確的變數宣告 unsigned char pdep...

判斷void 引數型別 void 是怎樣的存在?

說到c就不得不提指標,而一提到指標,有乙個是比較特殊的,那就是void void 到底是怎樣的存在?在說明void 之前,先了解一下普通指標型別的含義。include int main void int b a char c char a 0 printf b 1 dn b 1 printf c 1...

c 傳遞不定長引數 void型別引數 呼叫系統

include include include 傳遞不定長引數 int test void buf int add int,int main int add int a,va end argptr return result include type va arg va list argptr,ty...