in reply to Re^6: Bidirectional lookup algorithm? (Judy)
in thread Bidirectional lookup algorithm? (Updated: further info.)

A long long typedef would break your assumption on x32 ABI.

I meant (and thought I'd implied) "on 64-bit systems".

But you are right, there are probably better choices.

Fortunately, there is a type that should fit the bill exactly. You can use typedef ptrdiff_t Word_t;

ptrdiff_t is described as: "Result of subtraction of two pointers.".

Which means it is a signed type, which might have implications for the kind of bit manipulations -- shifts and masking -- the judy code performs.

uintptr_t would probably be a better choice: "uintptr_t: An unsigned integer or unsigned __int64 version of intptr_t.".

(and ssize_t is almost always the same size as well).

There doesn't appear to be a ssize_t defined by the MS compiler.

There's size_t defined as:"Result of sizeof operator.", (as used by Perl's STRLEN type), which seems to happily coexist with any of U32/I32 or U64/I64 variables as counters in your typical for loop.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked