Umm, isn't long on 32bit arch is also 32bit? 64bit is 'long long', and the constant suffix for 64 bit constants will be 'LL', or 'ULL' for unsigned. Alternatively, you can stick signed -1 into unsigned 64bit, to get a max val.
[vps@medusa]~/cprog$ cat ull.c
#include <stdio.h>
int main(int argc, char ** argv) {
unsigned long long p = -1LL;
fprintf(stdout, "val: %llu, %llx\n", p, p);
return 0;
}
/Users/vps/Android/ndk/android-ndk-1.5_r1/build/prebuilt/darwin-x86/arm-eabi-4.2.1/bin/arm-eabi-gcc -o ull -isystem/Users/vps/Android/ndk/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DSK_RELEASE -DNDEBUG -UDEBUG -march=armv5te -mtune=xscale -msoft-float -mthumb-interwork -fpic -fno-exceptions -ffunction-sections -funwind-tables -fmessage-length=0 -Bdynamic -Wl,-T,/Users/vps/Android/ndk/android-ndk-1.5_r1/build/prebuilt/darwin-x86/arm-eabi-4.2.1/arm-eabi/lib/ldscripts/armelf.x -Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc -Wl,--no-undefined -Wl,-rpath-link=/Users/vps/Android/ndk/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/lib -L/Users/vps/Android/ndk/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/lib -nostdlib /Users/vps/Android/ndk/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/lib/crtend_android.o /Users/vps/Android/ndk/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/lib/crtbegin_dynamic.o /Users/vps/Android/ndk/android-ndk-1.5_r1/build/prebuilt/darwin-x86/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1/libgcc.a -lc -lm ull.c
# /data/misc2/ull
val: 18446744073709551615, ffffffffffffffff