I had a lot of fun reading your code and I want to thank you for it. It was very enjoyable and educational.
Undefined behavior. Obsessive use of double underscore names is the least of it, implicit pointer integer conversions and mixed signed/unsigned... I shudder to think about it. Maybe you copy-pasted it from somewhere, or OSdevers told you it was a good idea?
Extremely bad symbol names. you export a variable called "initialized". Need I say any more?
- Bugs. There are two at work here, one is obvious (test case: any negative number), the other is evil:
(I believe there's actually a third bug in the itoa function that I figured out while looking at your other code, but I'm not confident in it.)
Oh, the fun you'll have debugging this one if it ever shows itself. You probably won't. Please don't put this in production code, I almost missed it myself. (EDIT: This one is actually a multi-headed beast. The other heads are less fearsome but far cleverer)
- Coding conventions that look like obfuscation techniques
I suspect you copy-pasted this from somewhere. Also, there's at least 2 bugs. They're very trivial and you'll find them immediately.
EDIT: there is a secret evil bug that isn't showing itself due to the set of compiletime constants you chose. I thought this one was trivial but no, it's got some evil.
I mentioned this function before. I'd call it exceptionally bad to have a pre-declaration outside of your headers. The function prototype being alone like this should help you figure out the other bug (No, not the negative number one).