John Goche writes:
I would like to know whether there is any difference between
the macro
#define FOO
and the parameterized macro taking no parameters
#define FOO()
They are called differently. The first is called as just FOO, the
second is called as FOO(). With the second, 'FOO' without () after it
is not expanded at all. If you want to define a constant, you'll
typically define FOO. If you define something which evaluates at
run-time, it looks more informative if you define FOO().
#define FOO one
#define BAR() two
#define BAZ BAR
Now the code
FOO w BAR x BAR() y BAZ() z
expands to
one w BAR x two y two z
--
Hallvard