2

次の例を検討してください。

enum my_enum
{
    ENUMERATER_1,
    ENUMERATER_2,
    ENUMERATER_TOTAL,
}
typedef enum my_enum my_enum_t                 // just if using option 2

static int use_my_enum(int myenum);            // 1
static int use_my_enum(my_enum_t myenum);      // 2
static int use_my_enum(enum my_enum myenum);   // 3

1、2、または 3 のうち、ベスト プラクティスと見なされるオプションはどれですか?

前もって、私の意見では、標準に従って、常に type を使用する必要があります。型にはint任意の値を割り当てることができます。他のオプションを使用すると、テストする必要がないという幻想を抱く可能性があります。あなたの主張が正しいかどうか。引数の型として使用すると、入力引数を常に確認する必要があることがより明確になります。enumsintenumintenum

を他のすべてのプログラム言語の型として使用する理由があるかもしれenumませんが、C の場合はそうではありません。オプション 2 または 3 を 1 よりも優れた方法と見なす理由はありますか?

結論:技術的な問題はなかったので、個人的な好みであると断言するのは間違いではありません. とにかく、最初の仮定を再考し、読みやすさのためにオプション #3 を少し良い方法として採用します。

4

2 に答える 2

5

私はするだろう:

typedef enum
{
    ENUMERATER_1,
    ENUMERATER_2,
    ENUMERATER_TOTAL,
} my_enum;

また、 で終わる型名_tは、次の POSIX 標準用に予約されています。

于 2013-05-17T20:47:13.867 に答える
3

それらのいずれを使用しても本質的に問題はありません。

最新の IDE では、それが優れている場合、2 番目の IDE が好みです。

最初のものも問題ありませんが、実際の値を使用せずに「偽装」している人がいる場合があります。たとえば、パラメーターとして 4 をスローすると、望ましくない動作が発生する可能性があります。

それは個人的な好みに帰着します。あなたはおそらく#2を好むでしょう。

于 2013-05-17T19:42:39.983 に答える