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?
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.
Ok great, thank you. That clears things up. This is an 8-bit PIC compiler so I would expect some weirdness.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.