confused by "typedef enum"

Guest #2874246
Rate this post
• ▲ useful
▼ not useful
I'm integrating a C library into my C project and have run across 
compile issues that have left me thoroughly confused.

First we have this in a header file (keep in mind I've changed the 
variable names):

typedef enum
{
    ITEM1,
    ITEM2,
    ITEM3,
    ITEM4,
    ITEM5
} MyError;

Then in a source file:

typedef MyError( *send_pdu ) ( unsigned int8  adr,
const unsigned int8 * pdu, unsigned int16 len );


I'm really confused as to the "typedef enum".  I know what typedef does, 
and I know what enum does.  What is the second statement doing?
Guest #2874266
Rate this post
• ▲ useful
▼ not useful
The second typedef defines a function type like this:
1
MyError func (unsigned int8, const unsigned int8*, unsigned int16);

Your typed are odd.

You really really should switch to C99's stdint.h and use uint8_t et al.

Reply

A question of your own? This thread is over 14 years old. Ask it in a thread of its own – more people read along there, and it gets answered more often and sooner.

Start a new thread

A fix, an addition or feedback on this thread? Then reply here.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.