A programming model found on many modern 32 bit systems. It means that integers, longs, and pointers are all represented as 32 bit quantities.

That means if you wrote the following program in C:

	#include <stdio.h>

	int main(void)
		printf("int: %d\n", sizeof (int));
		printf("long: %d\n", sizeof (long));
		printf("pointer: %d\n", sizeof (void *));


Compiling and executing the program on an ILP32 system would result in the following output:
	int: 4
	long: 4
	pointer: 4

Meaning that the default size of those C data types are all 4 bytes long, or 32 bits in size.

Reliance upon ILP32 assumptions in your code can break if you port your code to something like Windows 3.1 or the Macintosh, because both of those are LP32, and not ILP32. In LP32, the size of an integer is 16 bits and not 32.

Log in or register to write something here or to contact authors.