C++ C+中的枚举指针+;
枚举: 功能定义:C++ C+中的枚举指针+;,c++,enums,C++,Enums,枚举: 功能定义: enum DataStatus { DataNotAvailable = -1, DataLocallyAvailable = 0, DataExternallyAvailable = 1, }; 比较: GetDataStatusByFrame(UINT PI_uiRequestFrameNo, DataStatus *PO_peDataStatus); 问题: 如何比较这些类型或至少将它们
enum DataStatus
{
DataNotAvailable = -1,
DataLocallyAvailable = 0,
DataExternallyAvailable = 1,
};
比较:
GetDataStatusByFrame(UINT PI_uiRequestFrameNo, DataStatus *PO_peDataStatus);
问题:
如何比较这些类型或至少将它们转换为相同的数据类型?使用
IDataHandler::DataStatus* pinnedPointer = new IDataHandler::DataStatus();
GetDataStatusByFrame(1, pinnedPointer);
if (pinnedPointer == IDataHandler::DataStatus::DataNotAvailable) // 'cannot convert' exception
{
// ...
}
是否有必要进行分配?为什么不改为做下面的事情呢
if (*pinnedPointer == IDataHandler::DataStatus::DataNotAvailable)
{
//...
}
分配给
enum
指针的情况非常少见。通常传递静态分配的变量的地址。此API似乎旨在以稍微简单的方式调用,以避免动态分配稍后需要清理的内存。只要把变量放在堆栈上,它就会被自动清除
IDataHandler::DataStatus status;
GetDataStatusByFrame(1, &status);
if (status == IDataHandler::DataStatus::DataNotAvailable) {
// ...
}
你能不能不去引用指针?也许你可以用一些回到基本的信息。考虑阅读你最喜欢的书中的指针。
IDataHandler::DataStatus status;
GetDataStatusByFrame(1, &status);
if (status == IDataHandler::DataStatus::DataNotAvailable) {
// ...
}
IDataHandler::DataStatus status;
GetDataStatusByFrame(1, &status);
if (status == IDataHandler::DataStatus::DataNotAvailable) // 'cannot convert' exception
{
// ...
}