4 回答

TA貢獻(xiàn)1816條經(jīng)驗 獲得超4個贊
C ++ FAQ Lite:“如何混合C和C ++代碼”。
這些問題的答案描述了一些陷阱:
[32.8]如何將C ++類的對象傳遞給C函數(shù)或從C函數(shù)傳遞?
[32.9]我的C函數(shù)可以直接訪問C ++類的對象中的數(shù)據(jù)嗎?

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊
主要陷阱:C語言無法捕獲異常。如果C ++代碼中可能出現(xiàn)異常,請非常小心地編寫C代碼或C ++包裝器。相反,C語言中的異常機(jī)制(如longjump)(在各種腳本語言中可以找到)不需要為堆棧上的C ++對象調(diào)用析構(gòu)函數(shù)。

TA貢獻(xiàn)1772條經(jīng)驗 獲得超5個贊
您可以混合使用C / C ++代碼。如果您的main()函數(shù)使用C ++編寫,則只需確保聲明了c函數(shù)
extern "C"
如果您的main是C,那么除了靜態(tài)變量外,您可能還可以。任何帶有靜態(tài)變量的構(gòu)造函數(shù)都應(yīng)在main()開始之前調(diào)用。如果C是您的主要角色,則不會發(fā)生這種情況。我有很多靜態(tài)變量,最好的辦法是用單例替換靜態(tài)變量。
- 4 回答
- 0 關(guān)注
- 472 瀏覽
添加回答
舉報