The following checklist might be helpful to convert your code to 64-bit:
Read this entire document with an emphasis on the Guidelines for Converting to LP64 Data Type Model.
Review all data structures and interfaces to verify that these are still valid in the 64-bit environment.
Include <sys/types.h> in your code to pull in the _ILP32 or _LP64 definitions as well as many basic derived types.
Move function prototypes and external declarations with non-local scope to headers and include these headers in your code.
Run lint using –errchk=longptr64 and review each warning individually, being aware that not all warnings require a change to the code. Depending on the resulting changes, you might also want to run lint again, both in 32-bit and 64-bit modes.
Compile code as both 32-bit and 64-bit, unless the application is being provided only as 64-bit.
Test the application by executing the 32-bit and the 64-bit versions on the 64-bit operating system. The output of a 32-bit binary should be the same as the output of the 64-bit binary.