(菜鸟级别)简单的一个宏定义
在coreutils里的wc.c中的一个宏定义:
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
{
APPARENT_SIZE_OPTION = CHAR_MAX + 1,
EXCLUDE_OPTION,
FILES0_FROM_OPTION,
HUMAN_SI_OPTION,
MAX_DEPTH_OPTION,
TIME_OPTION,
TIME_STYLE_OPTION
};
看不懂,而且在source insight 上不显示CHAR_MAX有什么用。。
[解决办法]
enum是常量,但是这个常量的大小是可变的.
如果 常量中的最大值小于 256(可能是 128/具体忘了),那么所有的常量都是个char,
如果小于 65536(同上),那么可能是short..
CHAR_MAX+1 就保证了不会是 char...
当然,还可能有其他用途.比如保留枚举值小于CHAR_MAX供以后使用...
[解决办法]
这个东西可以让你通过CHAR_MAX的定义值来灵活控制目前这个enum体的起始值。
[解决办法]
就是设定了一个枚举值的起始值。防止和其他的枚举值相同。
看多了就习惯了。