我在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值?
我的猜测是,然后其他一些代码可以检查是否已使用#ifdef定义了这些枚举值中的一个(或多个)。