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

我在 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 值?

最佳答案

除了其他非常好的答案 - 我会选择它们的主要原因 - 如果您尝试重新定义 DT_UNKNOWN,编译器可能会生成警告或错误。

https://stackoverflow.com/questions/8588649/

相关文章:

linux - 进程可以拥有的每个不同 UID 的目的是什么?

c - 关于 putenv() 和 setenv() 的问题

c - bzero() & bcopy() 与 memset() & memcpy()

python - 如何关闭被杀死的程序打开的套接字?

linux - 解释导出 LANG、LC_CTYPE 和 LC_ALL 的效果

linux - 从 rpm 包中提取规范文件

linux - 使用命令或 bash 脚本清理环境?

linux - 除了使用 Ctrl + C 之外,如何在 linux 中停止正在运行的 R 命令?

linux - 双斜杠//in `cd//` 在 Linux 中是什么意思?

linux - tr 命令 - 如何将字符串 "\n"替换为实际的换行符 (\n)