C プログラムを作成するときに、次のエラー メッセージが表示されることがあります。
「C 構文エラー: 列挙型メンバーは一意である必要があります。」
これは、型内の列挙型が原因です。 、列挙メンバーの名前は一意である必要があり、重複することはできません。
それでは、このエラーを修正するにはどうすればよいでしょうか?いくつかの解決策を以下に示します。
方法 1: 列挙型メンバーの名前を手動で変更する
最も簡単な方法は、列挙型メンバーの名前を手動で変更して、一意になるようにすることです。たとえば、重複するメンバー名を別の名前に変更します。
たとえば、以下に示すように、同じメンバー名を持つ 2 つのメンバーを含む列挙型を定義すると:
enum Fruit { Banana, Apple, Strawberry, Apple };
コンパイラは、「C 構文エラー: 列挙メンバーは一意である必要があります」というプロンプトを表示します。 」。以下に示すように、メンバー名の 1 つを別の名前に変更できます。
enum Fruit { Banana, Apple, Strawberry, Orange };
これにより、このエラーは解決されます。
方法 2: typedef を使用して新しい列挙型を定義する
元の列挙型を変更したくない場合は、typedef を使用して新しい列挙型を定義し、列挙型を置き換えることもできます。元の Enum 型の名前が変更されました。
たとえば、上記の Fruit 列挙型の名前を FruitType に変更できます。
typedef enum { Banana, Apple, Strawberry, Apple } FruitType;
この方法で、プログラム内で FruitType を使用して、元の Fruit 列挙型を置き換えることができます。
方法 3: 列挙型クラスを使用する
C 11 では、列挙型を定義するときに列挙型メンバーの名前空間を制限できる列挙型クラス (enum クラス) の新機能が導入されています。名前の競合の問題を回避します。
たとえば、enum クラスを使用して、Fruit という名前の列挙型を定義し、そのメンバーの名前空間を Fruit に制限できます。
enum class Fruit { Banana, Apple, Strawberry, Apple };
現時点では、同じ名前のメンバーの場合、コンパイラは警告ではなくエラーを報告します。
概要:
C では、列挙メンバーは一意である必要があり、繰り返すことはできません。コンパイラーによって「C 構文エラー: 列挙型メンバーは一意である必要があります」というプロンプトが表示された場合は、列挙型メンバー名を手動で変更するか、typedef を使用して新しい列挙型を定義するか、列挙型クラスを使用して問題を解決できます。列挙型クラスを使用する方法は、C 11 で導入された新機能であり、列挙型メンバーの名前の競合の問題を効果的に回避できます。
以上がC++ 構文エラー: 列挙メンバーは一意である必要があります。どのように変更すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。