c語言指針強制類型轉換 C語言中,函數(shù)指針的強制類型轉換有什么作用?
C語言中,函數(shù)指針的強制類型轉換有什么作用?只需在變量前面添加強制轉換符號。例如,如果你想討論變量a的轉換層成形,你可以用這種方法寫(int)a(clogondlg*)m,它可以用C寫成這樣,有些C編
C語言中,函數(shù)指針的強制類型轉換有什么作用?
只需在變量前面添加強制轉換符號。例如,如果你想討論變量a的轉換層成形,你可以用這種方法寫(int)a
(clogondlg*)m,它可以用C寫成這樣,有些C編譯器也允許這樣。VC報告了一個錯誤。
常規(guī)指針類型強制是將等號右側的表達式強制轉換為結果所需的類型(即等號左側的變量類型)。所以:
mupwnd=(void*)muwnd
muwnd=(CLogonDlg*)mupwnd
在任何C/C編譯器中,都不會報告任何操作(當然,CLogonDlg需要正確解釋)。
因為Mupwnd類型是void*,所以可以這樣寫:
Mupwnd=wuwnd
也就是說,任何指針變量類型都可以直接分配給void*類型,而不必強制進行類型轉換。
相反,void*類型只能通過強制類型轉換轉換為其他指針變量類型:
m_Wnd=(CLogonDlg*)m_pWnd