3

iPhone アプリの typedef 列挙型を作成しました...

typedef enum {
    FirstType,
    SecondType,
    ThirdType
} type;

テストのために、これらからランダムなタイプを選択できるようにしたいと思います。

私はarc4random() % 4それを行うために使用し、代わりに int を使用するだけでしたが、これを行うより良い方法があるかどうかを確認したかったのです。

4

1 に答える 1

19
typedef enum {
    FirstType = 0,
    SecondType,
    ThirdType,
    EnumTypeMax
} EnumType;

EnumType randomType = (EnumType) (arc4random() % (int) EnumTypeMax);

EnumTypeMaxは に等しく、3ではなく4、それは正しいこと に注意してください。EnumTypeMax無効な値と見なされます。

また、 X-Macros ソリューションに関するこちらの回答もご覧ください。

于 2012-10-02T10:32:36.207 に答える