9

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?

sync
  • 93
  • 1
  • 3

1 Answers1

10

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.

Vortico
  • 2,610
  • 2
  • 32
  • 49
rlbond
  • 65,341
  • 56
  • 178
  • 228
  • 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 Apr 28 '10 at 04:41
  • +1. Great article. I'd love to hear the solution to the medium-difficulty exercise, too. – mbauman Apr 28 '10 at 05:37
  • 4
    Spoiler for medium-difficulty exercise: Because it would produce the wrong answer for _Bool. – John Marshall Apr 28 '10 at 06:57