C 中枚举成员的正确用法

spr*_*kv5 1 c

如果我在头文件 header.h 中有一个枚举

enum Fruits
{
  Apple,
  Orange,
  Guava
};
Run Code Online (Sandbox Code Playgroud)

我可以在另一个标头 bheader.h 中使用它吗

#include <aheader.h>
...
#define FRUIT1 Fruits.Apple
Run Code Online (Sandbox Code Playgroud)

无论我打算将其用于什么目的,这种用法是否正确。如果有的话,范围会发生什么变化?

Joh*_*ica 5

枚举常量在 C 中不受其父类型的限定,因此这很简单:

#define FRUIT1 Apple
Run Code Online (Sandbox Code Playgroud)

因此,通常认为自己为枚举常量添加前缀以避免名称冲突是一种很好的风格。

enum Fruits
{
  FRUIT_APPLE,
  FRUIT_ORANGE,
  FRUIT_GUAVA
};
Run Code Online (Sandbox Code Playgroud)