点击(此处)折叠或打开

  1. /*
  2.  * exercise19.c
  3.  *
  4.  * Created on: 2012-11-5
  5.  * Author: xiaobin
  6.  */


  7. enum myStr
  8.     {
  9.         x1,
  10.         x2,
  11.         x3=10,
  12.         x4,
  13.         x5
  14.     }x;

  15. int main(int argc, char* argv[])
  16. {
  17.     x = (enum myStr) 0x801005, 0x8010f4;

  18.     printf("%x\n", x + 5);
  19.     return 0;
  20. }

  首先,我们要知道mySt枚举常量的在未赋值的情况下,第一个常量为0,以此类推x2-1;在赋初值时,下一个常量+1,x4-11,x5-12;

    然后,要知道枚举变量默认取第一个常量的值,即x1;

    最后,要知道编译器对枚举变量不检查取值,即只取所赋的第一个值;


    输出结果:


点击(此处)折叠或打开

  1. 80100a

附:标准使用枚举的例子

点击(此处)折叠或打开

  1. enum status_type
  2. {
  3.   ok = 200,
  4.   created = 201,
  5.   accepted = 202,
  6.   no_content = 204,
  7.   multiple_choices = 300,
  8.   moved_permanently = 301,
  9.   moved_temporarily = 302,
  10.   not_modified = 304,
  11.   bad_request = 400,
  12.   unauthorized = 401,
  13.   forbidden = 403,
  14.   not_found = 404,
  15.   internal_server_error = 500,
  16.   not_implemented = 501,
  17.   bad_gateway = 502,
  18.   service_unavailable = 503
  19. } status




10-09 13:40