所以基本上我使用枚举来表示函数的用途。
我有一个函数,我希望它在某些情况下表现不同,但我想将它指定为参数,以便其他人可以读取。以这种方式使用枚举是否可以?或者我应该以不同的方式做什么?
示例:
enum ShredType {
maximum,
minimum,
average
};
和功能体:
void ShredDataToBarPlot(double* dataArray, int arraySize, int shredInterval,
enum ShredType type)
{
if(NULL != dataArray && arraySize > shredInterval)
{
for(int i = 0; i<getSignalSize()/2;i+=shredInterval)
{
if(type == maximum)
{
do something
}
else if (type == average)
{
do something else
}
...
函数调用示例是:
ShredDataToBarPlot(someArray, someArraySize, someInterval, maximum);
您可以将我的问题翻译为: 这是枚举的正确用法吗?我没有延长他们最初的目的吗?这种参数化函数的方式不会混淆其他人吗? 在我早期的编程过程中,我不想学习坏习惯。如果这个问题不适合stackoverflow,请告诉我我可以提出这样的问题。
答案 0 :(得分:2)
似乎是使用enums
的一个很好的理由。我认为不同的一点是,不是使用一系列if
,else if
,else
语句,而是使用switch
这样的语句:
switch(type)
{
case maximum:
...
break;
case average:
...
break;
}
也可能值得更改emum
值的大小写,以便它们看起来不像变量,即Maximum
,Average
等......