On Sat, 31 May 2003 at 10:25 +1200, Bernard Mentink <[email protected]>...:
> Beg to differ, The pre-processor does not know it is a number .... it's > just a token at this stage, and it > does not know what it is, so should report the whole > string.....afterall a##b is a concatination of strings cpp (the tool invoked via gcc -E does report the whole number $ cat concat.c #define CONCAT4(a,b,c,d) a##b##c##d CONCAT4(123,456,789,1_2) $ gcc -E concat.c # 1 "concat.c" 1234567891_2 The error report that you are getting is from the C compiler, and the rules for parsing a number cause it to stop before the underscore > Do you have any <helpful> suggestions to help me solve the original > problem? I would like to help, but perhaps you could describe the real problem you are trying to solve. I did take the time to re-read all your posts on the subject. Perhaps you could create a different test case that is closer to the real problem, as I think the numeric processing issue is a distraction. David
