C doesn't have (to the best of my knowledge) overloading or templates, right? So how can a set of type-agnostic functions with the same name exist in plain ol' C? The usual compile-time trickery would involve a whole bunch of macros, wouldn't it?
+4
A:
There's a great explanation of how it works in GCC here.
Also, if anyone can solve the medium-difficulty exercise, I'd love to know the answer.
rlbond
2010-04-28 04:28:30
That was a great read. It makes sense that the whole thing is so kludgy, though a part of me was hoping for a magical "C with Templates" C99.
sync
2010-04-28 04:41:36
+1. Great article. I'd love to hear the solution to the medium-difficulty exercise, too.
Matt B.
2010-04-28 05:37:04
Spoiler for medium-difficulty exercise: Because it would produce the wrong answer for _Bool.
John Marshall
2010-04-28 06:57:53