It works that way but typically you leave out the final semicolon from the macro. That way in your code you can write

HLINE(foo);

in the normal fashion.