2013-05-20 53 views
0

Void變量無關,void指針也只能用於強制轉換。 所以當我們實際上不知道我們想要指向哪個數據類型和哪個數據類型時,使用void指針。但是什麼是無效變量?void數據類型和void指針的實際用途是什麼?

任何實際的例子?

+0

你的意思是'void v;'?這在任何語言中都不存在。 –

+0

我認爲它比'C'更相關於C# – Habib

回答

1

在C void不能被認爲是一種數據類型,它是用作佔位符以代替數據類型的顯示,實際上沒有數據的關鍵字。

例如,考慮功能void f(void);。這裏使用關鍵字void來表示沒有任何參數傳遞和返回值。

但是void *ptr;的含義不同。

這聲明瞭一個指針而不指定它指向哪個數據類型。

0

沒有void變量,正如marko Topolnik在他的評論中所述。

Void指針在C/C++中用於指向未指定的內容。該關鍵字也用於(並用C#和其他語言)標記不返回值的方法。所以,我想您所想:

void method(); 

正在恢復void類型,它不是東西。它沒有返回任何東西。

0

它們在通用接口中很有用,如經典的qsort

void 
qsort(void *base, size_t nel, size_t width, 
    int (*compar)(const void *, const void *)); 

http://www.manpagez.com/man/3/qsort/

void返回類型標識爲一個過程,而不是一個功能,因爲它返回根本沒有數據(任何類型的)。 void *可以指向任何東西,但compar函數必須適當地施放它們才能使用它們。

1

沒有void變量,但有void指針。由於其他人已經提到了很多,我想提醒你在使用void指針之前先進行強制類型轉換。

float generic_add(void *n1, void *n2){ 
    return *((int *) n1) + *((float *) n2); 
}