Harry
Harry

Reputation: 119

Check if app is built in 32 or 64-bit?

How can I check whether my app is compiled in 32-bit or 64-bit ?

This is helpful to debug low level code (working with buffers for example).

Upvotes: 7

Views: 9617

Answers (3)

rcpfuchs
rcpfuchs

Reputation: 832

You could check the size of a pointer. I think on 32bit it is 4bytes and on 64 it should be 8.

if( sizeof(void*) == 4 ) then 32bit else 64bit

Upvotes: 2

CodaFi
CodaFi

Reputation: 43330

A compile time check would involve #ifdef'ing for __LP64__, which is ARM's data type size standard. A runtime solution would involve checking the size of pointers, like so:

if (sizeof(void*) == 4) {
    // Executing in a 32-bit environment
} else if (sizeof(void*) == 8) {
   // Executing in a 64-bit environment
}

Thankfully, pointer sizes are the one thing that the different standards for compiling 64-bit code seem to agree on.

Upvotes: 19

GW.Rodriguez
GW.Rodriguez

Reputation: 1181

#ifdef __LP64__
    NSLog(@"64-bit\t");
#else
    NSLog(@"32-bit\t");
#endif

Upvotes: 16

Related Questions