For my money, something that looks like a C API with very obviously impossible things going on (passing "naked" names of primitive types like int and float) makes my personal WTF-o-meter go to eleven immediately.
I (of course) had to start reading the code to figure out what was going on, and saw that what looks like a function call is in fact a macro. That explains the "how" but (again, for me) it really doesn't come close to making it feel natural.
C code should look like C code, and you can't write a function that takes a bare "int" as an argument.