This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

enum question

These code snippets come from a Dhrystone test we are using to evaluate ARM MDK and some ARM devices. The program works well but I have run across a construct that I do not understand. I hope some of you experts can point out what I'm missing.

In a header file an enum-
typedef enum {Ident_1,Ident_2,Ident_3,Ident_4} Enumeration;

In main() there is a declaration-
Enumeration Func_1();
/* forward declaration since Enumeration may not be int */

I have looked in my 'C' books and googled enum and Enumeration but failed to find any construct examples such as this. Of course I found the normal 'day of the week' and 'color' examples in many locations.

I have no problems with the code. I just don't understand the constructs.

Any guidance would be appreciated.
Bradford

Parents
  • Well, I'm not sure that the construct is standards-compliant (C90 or C99.) But the meaning is clear. Rather than declaring an enumeration type like this:

    enum Enumeration {Ident_1,Ident_2,Ident_3,Ident_4};
    


    and refer to it later as enum Enumeration, the author of the code chose to declare an anonymous enumeration and assign to it the type name Enumeration with the typedef. The return value of the function is of the type Enumeration.

Reply
  • Well, I'm not sure that the construct is standards-compliant (C90 or C99.) But the meaning is clear. Rather than declaring an enumeration type like this:

    enum Enumeration {Ident_1,Ident_2,Ident_3,Ident_4};
    


    and refer to it later as enum Enumeration, the author of the code chose to declare an anonymous enumeration and assign to it the type name Enumeration with the typedef. The return value of the function is of the type Enumeration.

Children