如下函式定義:
std::string inittexture(void** depthtexbuf,int width, int height);
如果想呼叫此函式,d
epthtexbuf引數,應該怎麼宣告和初始化乙個變數,呼叫上面的函式時,作為實參傳入呢?
正確的變數宣告:
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 如果想呼叫此函式,depthtexbuf引數,應該怎麼宣告和初始化乙個變數,呼叫上面的函式時,作為實參傳入呢?正確的變數宣告 unsigned char pdept...
判斷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...