A few years ago I mentioned on these forums that I work with a compiler on my school robotics team that has a 24-bit "short long" data type. Well, I've finally found out what compiler the software uses (it's a GUI-based programming software called EasyC V2, made by Intelitek: http://www.intelitekdownloads.com/ ).
As you can see it, supports all of 8 bit, 16 bit, 24 bit, and 32 bit integral types, with "int" being 16 bits. I wonder why/how this is implemented? I don't know much about the microconctroller that the compiled HEX files are downloaded to, but for the Cortex microsontrollers we use different software (EasyC V4) that uses a GCC compiler set to target arm-none-eabi.
What do you think? A 24-bit data type along with the other 8, 16, and 32-bit types seems pretty strange.
C:\Program Files\Intelitek\easyC V2 for Vex\Mcc18\bin>mcc18 -I=../h/ test.c
MPLAB C18 v2.40 (feature limited)
Copyright 1999-2004 Microchip Technology Inc.
This version of MPLAB C18 does not support the extended mode
and will not perform all optimizations. To purchase a full
copy of MPLAB C18, please contact your local distributor or
WARNING: This version of MPLAB C18 does not support procedural abstraction. Pr
ocedural abstraction will not be run.
C:\Program Files\Intelitek\easyC V2 for Vex\Mcc18\bin\test.c:3:Error  func
tion 'main' should be declared as 'void main (void)'
C:\Program Files\Intelitek\easyC V2 for Vex\Mcc18\bin\test.c:6:Warning  ty
pe qualifier mismatch in assignment