In Keil demos, I find some definitions such as "#ifndef __C51__", what's the meaning for double '_'.
The symbols are documented in the manual They are Keil-specific, but work in exactly the same way as the standard 'C' __DATE__, __TIME__, etc