2011-05-17 204 views
1

我是從CPP移植到目的C.錯誤:的static_cast undeclared->目標C

目標C:

[pPacket SetHeaderSequenceNumber:static_cast<char>(m_transmitSequenceNumber + ASCII_ZERO)]; 

CPP:

pPacket->SetHeaderSequenceNumber(static_cast <char>(m_transmitSequenceNumber + ASCII_ZERO)); 

錯誤:未申報的static_cast。

+0

相關:http://stackoverflow.com/questions/3147156/casting-comparison-between-objective-c-and-c – Mat 2011-05-17 12:57:35

回答

7

objective-c是c的超集,而不是C++,因此static_cast不受支持。您可以使用C風格演員表:

[pPacket SetHeaderSequenceNumber:(char)(m_transmitSequenceNumber + ASCII_ZERO)]; 
4

目標C是C和C++的超集。 static_cast是一個C++運算符,因此Objective C不能使用它。

但是有Objective C++,它理解C++。要使用此命令將.m文件重命名爲.mm,Xcode會將其編譯爲Objective C++