2016-02-23 85 views
1

我正在研究FUSE的来源以了解它的工作原理。不幸的是,我不是一个使任务更难的C++程序员。我发现这个结构在fuse_kernel.h,并不明白它的元素用途。什么是FUSE_NOTIFY_CODE_MAX以及它未被初始化的原因?什么是FUSE_NOTIFY_CODE_MAX以及它未被初始化的原因?

enum fuse_notify_code { 
    FUSE_NOTIFY_POLL = 1, 
    FUSE_NOTIFY_INVAL_INODE = 2, 
    FUSE_NOTIFY_INVAL_ENTRY = 3, 
    FUSE_NOTIFY_STORE = 4, 
    FUSE_NOTIFY_RETRIEVE = 5, 
    FUSE_NOTIFY_DELETE = 6, 
    FUSE_NOTIFY_CODE_MAX, 
}; 
+1

[This](http://en.cppreference.com/w/cpp/language/enum)对'enum'的默认值赋值有一个很好的解释 – EdChum

回答

1

它的最大价值,该枚举有,它初始化,虽然没有明确:

如果不指定枚举明确的价值,那么它需要的值比列表中的前一个更大。 (如果一个枚举没有显式值,那么第一个枚举值将为零)。

枚举的作者没有硬编码该数字是相当不错的。

+1

有趣的是,作者正在赋值到所有其他枚举。你会认为他们不会节省一些打字工作,并确保你不会意外地分配一个值,使得最大值不是最大值。 – NathanOliver

相关问题