I have no idea what a $ sign does in a macro, if it even does something at all. As far as I know, the $ sign is not a reserved character and is not used for anything in C/C++, so I would imagine that it is a valid character to start a name with (especially at the pre-processor level). So, my guess would be that it was put there to signify that $Line is for the string literal code-line number (which is what the MACRO expands to, if you didn't know already). Is the MACRO used with or without the $ sign? If it is used with it, I'm guessing it is just that the name of the MACRO is "$Line". It's certainly weird, first time I see this.
#define $THE_NUMBER_0 (0)
int main( )
int $int1$ = $THE_NUMBER_0;
$int1$ = 10;
But for some reason in VC++ you can't see the value of $int1$ when you move your mouse over it, but you can see it in the 'Locals' panel (while debugging). I don't know why I haven't seen this written anywhere.
Identifiers are case sensitive and start with a letter (ISO Latin-1 decimal values 65-90 and 97-122), a dollar sign ($), a tilde (~), a colon (:), or an underscore (_); any additional characters can be a letter, digit (0-9), dollar sign ($), underscore (_), a tilde (~), a colon (:), or an operator symbol. Use of the dollar sign, tilde, and colon are extensions to C++.
I think the $ sign is a perfectly valid character for an identifier in C/C++, let alone a pre-processor macro.
EDIT: I still would not use the $ sign in an identifiers name, that's just too weird and any programmer reading it will automatically have doubts whether it does something special or not.