我应该使用枚举参数来确定函数吗?

时间:2017-06-21 10:14:20

标签: c enums

所以基本上我使用枚举来表示函数的用途。

我有一个函数,我希望它在某些情况下表现不同,但我想将它指定为参数,以便其他人可以读取。以这种方式使用枚举是否可以?或者我应该以不同的方式做什么?

示例:

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,请告诉我我可以提出这样的问题。

1 个答案:

答案 0 :(得分:2)

似乎是使用enums的一个很好的理由。我认为不同的一点是,不是使用一系列ifelse ifelse语句,而是使用switch这样的语句:

switch(type)
  {
case maximum:
   ...
break;
case average:
   ...
break;
  }

也可能值得更改emum值的大小写,以便它们看起来不像变量,即MaximumAverage等......