A major driver of modern C/C++ development is the need for producing native 64-bit code. In most cases, servers and desktop systems are now almost exclusively 64-bit machines. Given this fact, isn't the move to 64-bit C/C++ code just a matter of changing a few build settings? Stephen B. Morris explains why it's not so simple.
Migrating 32-bit C/C++ code to 64-bit is not a trivial task. There are many issues to consider. This article looks at the areas of numerical limits, data alignment, pointer arithmetic, and array indexing. Before getting underway, let's take a short detour to provide some definitions, starting with the term “64-bit” itself.