:
limits.h
#define LNG_BIT (sizeof(long) * CHAR_BIT)
unsigned long num = 1UL << (LNG_BIT - 1);
" int", - ?:
#define INT_BIT (sizeof(int) * CHAR_BIT)
if (LNG_BIT > INT_BIT)
return num & (~0UL >> INT_BIT);
else
return num;
num &= ~(~0U << INT_BIT);
, .. , , .. int.
, ; gcc:
-m32
-m64
-mx32
32- 64- .
* -m32 int, long pointer 32 , i386.
* -m64 int 32 , - 64 x86-64. -m64 -fno-pic -mdynamic-no-pic.
* -mx32 int, long pointer 32 x86-64. >
-maddress-mode=long ..
-maddress-mode = long
. 64- x32-. 64- . >