> I personally do not feel it is worth the effort. It's easy to use a > more powerful macro processor, such as m4, to generate your C code. The > benefit of building a more powerful macro processor into the language > proper seems minimal. > > This particular extension seems problematic when cross-compiling. In > what environment should the expressions be evaluated?
why are you asking for a specific environment? it's coding convenience and elegance for coding in c itself. simplest case scenario is what i've already mentioned in my very first email. alright, i'll repeat myself (in case you haven't read the whole thread)... say you have different macros, FUNC_MACRO1, FUNC_MACRO2, FUNC_MACRO3, ... whichever macro to be used can be indexed 1, 2, 3... so forth. the index is conveniently described in an arithmetic expression, as it usually arises even if just programming in plain c. #define CONCAT(a, b) a##b #define CONCAT_VAR(a, b) CONCAT(a, b) #define FUNC_MACRO(N) CONCAT_VAR(FUNC_MACRO_, N) invoking with FUNC_MACRO(1), FUNC_MACRO(2), so forth... will work. but like i said, it's usually described by an arithmetic macro expression. so if you have this: #define N a + b/c and use it later on: FUNC_MACRO(N), will expand to: FUNC_MACRO_a + b/c which is wrong. it alleviates the need to write external files in, say, m4, even if the macro is just a few lines long; and having to go back and forth with another language (for us novices).