On Wed, 19 Nov 2014, Chen Gang wrote: > OK, thanks, what you said sounds reasonable to me. We need '(' and ')' > for negative members, and "LL" for the members which is larger than 32 > bits.
I don't think LL is a good idea when not needed - quite possibly some of the macros are expected or required to have type int. Really I think it would be better to require that this function is only used for values that fit in target int (given appropriate checks on all the users to make sure they fit in with that), and put a corresponding assertion there. > And excuse me, I do not understand why use "(-9223372036854775807LL-1)" > instead of "(-9223372036854775808LL)": compiler will report warning for > it, but for me, it is more likely the compiler's own issue: Because - and 9223372036854775808LL are separate tokens, and the latter is not a valid long long value. -- Joseph S. Myers jos...@codesourcery.com