Hi Dave, Daniel, and Gaurav, For C99, I stand corrected. For C89 or C++98, I think my statement is applicable. (But until I double-check by reading those standards, take that with a grain of salt.) For all three, having enum be an int (signed or unsigned) is legit of course. For all three, having enum be a long is (at best) a compiler extension, at worst (-pedantic ?) not supported. If I'm reading the specs correctly. NOTE: not germane to Gaurav's question, just talking out loud. Sincerely, --Eljay