Actually, I don't think this is true in C. I couldn't get this to work:Rather than using #define to define constants it's better to just make constants:
const size_t SIZE = 10;This gives you type control and avoids macro expansion problems like the one you encountered.
Using #define is almost the same as using your a text editor's 'find-and-replace' function. There are some cases where it's useful, but usually it causes more problems than it solves.
const int N = 10;
struct S {
int i[N];
};