Gunnar Dalsnes wrote:
Phillip Susi wrote:
Recently I was reading over some apache code and they make extensive use of macros for flow control. I found myself becoming frustrated to no end because I could not figure out what the hell was going on. They looked like nice, neat function calls, but I could not for the life of me figure out where the code was that was being called.
So if they had been function calls and not macros it would have been easier??? Or should we stop using functions also? ;-P
Well, yes...
You can't step into macros in most debuggers (that I use.)
As Alex mentioned, it is a pain to try and sprinkle debugging statements in a macro (if only because the syntax is so ugly.)
Macros have ill defined side effects. This is especially damaging to code maintainability when macros look like functions.
Macros are bug prone because they have additional unique issues over normal code, they are hard to read, and hard to debug.
C++ (and some latter version of C if I'm not mistaken) added inline functions for a reason: so programmers would stop using macros.
If you cant find a macro (simple text search) you probably wouldnt have understod the code _without_ the macros either;-P
If I'm searching for something that looks like a function call (especially if I'm searching for the definition not the declaration), I might be looking in the wrong places or searching using syntax that doesn't catch a #define.
Thanks,
Joseph