One of the major points which Lispers claim as a bonus over more "mainstream" languages is that the macro language is actually Turing complete (I cannot recall if this was Paul Graham in On Lisp or if it was Conrad Barski in Land Of Lisp)1, and to an outsider, at least, this seems true -- pre-processor directives in C/C++ do not seem to be Turing complete (honestly, they feel like more of an annotation syntax).
(I will refrain from asking the opinion questions like "what are the best...")
1. Both are really good books by the way, just sayin'
C macros are in fact Turing complete, if processed more than once. Check out this related question and in particular the Turing machine implementation linked to in the accepted answer.
But yes, this is cheating. The solution used there strongly implies that C macros really aren’t Turing complete.