Lesimyの備忘録

忘れっぽい脳のための忘備録

enumの名前空間

2022-10-07 16:50:07 | C言語

C言語においては名前空間があるが、他の言語に比べて良くも悪くもフラットだ。

 

例えば複数の enum で同じ列挙子は使えない。

enum a { AAA, BBB, CCC };
enum b { BAB, BBB, BCB };

こんなコードを書くと BBB が競合してエラーになる。

結局長い名称を付けてユニークな名称にするしか回避策は無い。 構造体の中に無名でenumを入れ子にしても名前空間が同じなので競合は避けられない。言語使用なので仕方ない。