That "long" is actually called a ptrdiff_t :-) (the result type of a pointer subtraction). I don't really care too much - you can keep it as is or make it more implicit that this is the (static) offset by making it a ptrdiff_t.