I'm not sure if this is the easiest way, but this is how I did it.
Get verbose output (checkbox in Preferences, or hold down Shift while hitting Verify under version 0022).
The first line shown (it might wrap) should be your main sketch, in my case I saw this:
/Applications/Arduino_v0022.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=22 -I/Applications/Arduino_v0022.app/Contents/Resources/Java/hardware/arduino/cores/arduino /var/folders/1l/43x8v10s1v36trvjz3v92m900000gn/T/build7232351857332367125.tmp/sketch_mar30a.cpp -o/var/folders/1l/43x8v10s1v36trvjz3v92m900000gn/T/build7232351857332367125.tmp/sketch_mar30a.cpp.o
Now, replace the -o ... stuff with -E.
In other words, the output file, in my case:
-o/var/folders/1l/43x8v10s1v36trvjz3v92m900000gn/T/build7232351857332367125.tmp/sketch_mar30a.cpp.o
is replaced by -E.
This outputs the preprocessor output to stdout. You might want to send that to a file, eg.
/Applications/Arduino_v0022.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=22 -I/Applications/Arduino_v0022.app/Contents/Resources/Java/hardware/arduino/cores/arduino /var/folders/1l/43x8v10s1v36trvjz3v92m900000gn/T/build7232351857332367125.tmp/sketch_mar30a.cpp -E > ~/nick.txt
Opening that file, near the bottom, I see this:
void doGET(String parameter, EthernetClient client);
void doGET(String parameter, EthernetClient client){
parameter.toLowerCase();
if (parameter=="/") parameter = "/index.htm";
int ptr = parameter.lastIndexOf(".");
String ext = parameter.substring(ptr+1);
DEBUG_PRINT("ext:" << ext );
switch(0){ if(0x0);
else if(ext == "htm") doHTML(parameter, client);
else if(ext == "jpg") doJPG( parameter, client);
else if(ext == "txt") doTXT( parameter, client);
else crash(4002, "unknown file extension");
}
}
Having answered your question, I don't know if I would do that personally. I think it just obscures things somewhat. But sometimes it is handy to know what the preprocessor is doing.