I am working with Apple's ScriptingBridge
framework, and have generated a header file for iTunes that contains several enum
s like this:
typedef enum {
iTunesESrcLibrary = 'kLib',
iTunesESrcIPod = 'kPod',
iTunesESrcAudioCD = 'kACD',
iTunesESrcMP3CD = 'kMCD',
iTunesESrcDevice = 'kDev',
iTunesESrcRadioTuner = 'kTun',
iTunesESrcSharedLibrary = 'kShd',
iTunesESrcUnknown = 'kUnk'
} iTunesESrc;
My understanding was that enum
values had to be integer-like, but this definition seems to violate that rule. Furthermore, it seems as though treating these enum
values as integers (in an NSPredicate
, for example) doesn't do the right thing.
I added the enum
declaration above to a C file with an empty main
function, and it compiled using i686-apple-darwin9-gcc-4.0.1
. So, while these kinds of enum
s may not conform to the C standard (as Parappa points out below), they are at least being compiled to some type by gcc.
So, what is that type, and how can I use it, for instance, in a format string?