首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

(初学者级别)简单的一个宏定义

2012-04-26 
(菜鸟级别)简单的一个宏定义在coreutils里的wc.c中的一个宏定义:/* For long options that have no equiva

(菜鸟级别)简单的一个宏定义
在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体的起始值。

[解决办法]
就是设定了一个枚举值的起始值。防止和其他的枚举值相同。

看多了就习惯了。

热点排行