Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #150258

Re: clarification about enums in C

Newsgroups comp.lang.c
Date 2020-02-25 19:19 -0800
References <aaf0f57f-4ae1-4c4a-a0aa-314eade48440@googlegroups.com>
Message-ID <3c3d49d5-e488-4c36-b73b-87de4eb9d032@googlegroups.com> (permalink)
Subject Re: clarification about enums in C
From luser droog <luser.droog@gmail.com>

Show all headers | View raw


On Tuesday, February 25, 2020 at 5:38:47 PM UTC-6, Thiago Adams wrote:
> From the standard:
> 
> "The identifiers in an enumerator list are declared as constants 
> that have type int and may appear wherever such are permitted.127)"
> 
> But there is a foot note:
> 
> "Each enumerated type shall be compatible with char, a signed 
> integer type, or an unsigned integer type. The choice of type 
> is implementation-defined,128)"
> 
> "128) An implementation may delay the choice of which integer 
> type until all enumeration constants have been seen."
> 
> I am confused. 
> 
> enum E { A, B};
> 
> Can A and B be int and E not int?
> Can A B and E be != int? 
> 
> If so, what is this 
> 
> "The identifiers in an enumerator list are declared as constants 
> that have type int and may appear wherever such are permitted.127)"

It's talking about declaring a enum variable.

  enum E myenum;

What type is 'myenum'? It might seem obvious to implement as the
same as an int. But in the your example, having only two names A and B,
that could comfortable fit in a signed char. So the compiler is
given leeway to choose the *underlying* type. The names A and B yield
int in an expression, but in most expressions the promotion rules
would probably convert it to int anyway, ie. even if it were to yield a
signed char sometimes.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

clarification about enums in C Thiago Adams <thiago.adams@gmail.com> - 2020-02-25 15:38 -0800
  Re: clarification about enums in C luser droog <luser.droog@gmail.com> - 2020-02-25 19:19 -0800
  Re: clarification about enums in C James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-25 21:17 -0800
    Re: clarification about enums in C Thiago Adams <thiago.adams@gmail.com> - 2020-02-27 04:01 -0800
  Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-26 11:29 +0100
    Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-26 14:05 -0800
      Re: clarification about enums in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-26 23:03 +0000
        Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-26 23:29 -0800
          Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-27 01:42 -0800
            Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 11:02 +0100
              Re: clarification about enums in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-02-27 06:37 -0800
                Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 16:18 +0100
                Re: clarification about enums in C James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-27 23:24 -0500
      Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 09:50 +0100
        Re: clarification about enums in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-02-27 06:33 -0800
          Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-27 06:53 -0800
          Re: clarification about enums in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-27 15:05 +0000
          Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 16:24 +0100
          Re: clarification about enums in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-02-28 01:27 -0800
      Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-27 01:29 -0800
        Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 11:12 +0100
          Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-27 03:09 -0800
            Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 14:33 +0100
              Re: clarification about enums in C already5chosen@yahoo.com - 2020-02-27 05:44 -0800
                Re: clarification about enums in C David Brown <david.brown@hesbynett.no> - 2020-02-27 14:57 +0100
        Re: clarification about enums in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-27 11:53 +0000
          Re: clarification about enums in C James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-27 23:52 -0500
            Re: clarification about enums in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-02-28 01:30 -0800
  Re: clarification about enums in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-26 14:09 +0000
    Re: clarification about enums in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-02-26 09:47 -0800
      Re: clarification about enums in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-26 21:04 +0000

csiph-web