一尘不染

枚举中的这些#define的目的是什么?

linux

我在linux头文件/usr/include/dirent.h中找到了以下代码:

enum   
  {    
    DT_UNKNOWN = 0,
# define DT_UNKNOWN DT_UNKNOWN
    DT_FIFO = 1,
# define DT_FIFO    DT_FIFO   
    DT_CHR = 2,
# define DT_CHR     DT_CHR
    DT_DIR = 4,
# define DT_DIR     DT_DIR
    DT_BLK = 6,
# define DT_BLK     DT_BLK
    DT_REG = 8,
# define DT_REG     DT_REG
    DT_LNK = 10,
# define DT_LNK     DT_LNK
    DT_SOCK = 12,
# define DT_SOCK    DT_SOCK   
    DT_WHT = 14
# define DT_WHT     DT_WHT
  };

这个构造是做什么用的?-为什么用相同的字符串定义东西,然后将其编译为int值?


阅读 440

收藏
2020-06-02

共1个答案

一尘不染

我的猜测是,然后其他一些代码可以检查是否已使用#ifdef定义了这些枚举值中的一个(或多个)。

2020-06-02