2015-11-17 33 views
3

我剛纔在mscorlib IntPtr下面的代碼結構中按下了F12在visual studio中。顯式轉換運算符中的void *是什麼以及它的用途是什麼?

public static unsafe explicit operator void* (IntPtr value) 
{ 
    return value.m_value; 
} 

我知道,我們可以定義明確的轉換操作這樣的,但它是無效*,所以我很困惑,這是什麼,什麼是用呢?

+0

這將是一個無效指針 –

+0

我認爲這篇文章有很好的https://msdn.microsoft.com/nl-nl/library/y31yhkeb.aspx – NickGames

+0

更多https://msdn.microsoft.com/zh-cn/ us/library/y31yhkeb(VS.80).aspx –

回答

4

Void *是一個void指針。它是一個經常在C++中使用的構造。大多數情況下,當你想使用一個指針指向多個其他數據類型,或者你不確定你將使用哪個數據類型指針時,它會被使用。

實際上,您可以將它看作是一種通用類型,因爲它可以轉換爲任何其他指針類型,反之亦然。它通常在處理非託管代碼時使用,並且是C++構造。在託管代碼中,它通常找不到用法。

相關問題