Best practice in C to support 64-bit or 32-bit address length with same source file ?
Ken Raeburn
raeburn at raeburn.org
Sun May 4 15:05:04 UTC 2008
On May 3, 2008, at 16:49, Davis Johnson wrote:
> Rule 1 includes using NULL for null pointer values and not 0. It
> also includes using %p to format pointer values. There are probably
> some other things I should add.
NULL may be defined as 0, though. In calling a variadic function like
printf, *always* cast NULL (or 0) to the correct pointer type expected
by the function; the compiler should automatically convert NULL or 0
as needed in most other contexts. In fact, for variadic functions,
you should also make sure your integral-typed arguments are of the
correct types, because passing a 64-bit long where the function
expects a 32-bit int (or vice versa) may cause a mismatch in stack
layout calculations.
Ken
More information about the axp-list
mailing list