Subtracting function pointers doesn't have to have any meaning.
Tiny C (from 2006, 5 years old) gives:
function pointer expected
MS C 6 (from 1998, 13 years old) gives error C2296: '-' : illegal, left operand has type 'void (__cdecl *)(int )'
Turbo C 2.01 (from 1988, 23 years old) gives: Size of structure or array not known in function
etc.I think the really clean solution (as far as I know, at least it works with all the compilers I've mentioned) is: