Eric said:
#if #cpu(l64360)
#include <a.h>
#elif #cpu(lr333x0)
...
#endif
What does '#cpu' here mean?
It is a syntax error in standard C. The '#' character gets parsed as a
punctuater, not as part of the same identifier as "cpu". While C does
recognize '#' as an operator, it does so only in the context of defining
the expansion for a macro name. The thing that immediately follows a #if
is supposed to be a constant-expression, with certain limitations; it
cannot contain a '#' punctuator. Therefore, a compiler that allows such
code to be compiled is implementing an extension to C (or possibly a
significantly different language that just looks like C), and it's
meaning will depend upon that compiler.