> By: kidkat
> The macros I am using are always uppercase, so I can differ between a
> and a function.
That is good programming practice. However, some of the code out there
(Win32 API, C++ STL, etc) are older than some of the programming practices
that became more popular recently. Java is partly to blame (in a good way)
for that. Anyway, there is a lot of older code out there written in a way
inconsistent with the way many of us write new code. The assertion macro
is one example. There are many others, such as the Win32 API calls that
are macros but look like functions, but the macros turn into functions
anway (e.g. Unicode stub functions, anything like
The moral of the story? Look carefully and grep headers to figure out what
is really going on.