Академический Документы
Профессиональный Документы
Культура Документы
O
06.08.2009
64- .
,
. .
,
64- . , , /++,
.
- 32- 64-
, .
,
. , 32-
,
64- .
64-
.
. 64-
64- ,
.
64-
64- .
.
,
.
,
,
. :ITS4, SourceScope, Flawfinder, -
[1].
, .
, ,
. ,
, [2].
, .
- ,
. ,
. , ,
/ .
,
0x00 ( ).
, -1 +1.
,
.
.
.
, 64 .
f
, 64-
"20 ++ - 64- " [3]
" 64- " [4]. ,
,
.
,
64- . , , ,
64- ,
. - .
,
, , 4 Gb. .
void *SpecificMalloc(unsigned int size) {
return malloc(size);
}
...
char *buf;
size_t len;
read(fd, &len, sizeof(len));
buf = SpecificMalloc(len);
read(fd, buf, len);
, 64- (Linux, Windows) int 32-, size_t 64-. size_t unsigned int
SpecificMalloc. 4 ,
, . ,
, ,
64- , 32- 64-
, .
. ,
, , -
time_t.
:
char buf[9];
sprintf(buf, "%p", pointer);
, . .
, 4
:
LPARAM *CopyParamList(LPARAM *source, size_t n)
{
LPARAM *ptr = (LPARAM *)malloc(n * 4);
if (ptr)
memcpy(ptr, source, n * sizeof(LPARAM);
return ptr;
}
:
int a = -2;
unsigned b = 1;
ptrdiff_t c = a + b;
if (c == -1)
{
printf("Case: 32 -bit\n");
} else {
printf("Case: 64 -bit\n");
'if'. ++ "ptrdiff_t c = a + b;"
:
/m int, -2 unsigned
0xFFFFFFFEu.
/m 32- 0x00000001u 0xFFFFFFFEu,
0xFFFFFFFFu 32-.
/m 0xFFFFFFFFu 64- . 32 , -1. 64 0xFFFFFFFF.
, .
64- :
int A = -2;
unsigned B = 1;
int array[5] = { 1, 2, 3, 4, 5 };
int *ptr = array + 3;
ptr = ptr + (A + B);
*ptr = 10; //
// 64- .
,
A B , .
.
. :
ptrdiff_t SetBitN(ptrdiff_t value, unsigned bitNum) {
ptrdiff_t mask = 1 << bitNum;
return value | mask;
}
32-
0 31 . 64-
0 63. ,
32-63. , "1" int 32
. 0 1,
. ,
. 31- 64-
%X
64- .
64- , ,
, . ,
,
.
2.m , 32-
.
3.m , ,
, ,
.
4.m .
5.m
32- 64- .
6.m ,
, 64- .
, , , ,
64- .
, ,
.
64- . PVS-Studio,
64-
.
PVS-Studio
" "
, , (OpenMP)
64- [5]. PVS-Studio Microsoft Visual Studio 2005/2008,
MSDN.
PVS-Studio Viva64,
/++- , 32-
64-.
64- .
PVS-Studio 64 .
64- ,
,
. , ,
.
, PVS-Studio ,
32- 64-
64- . PVS-Studio ,
, sprintf, strncpy
. ,
ITS4, SourceScope, Flawfinder, -. PVS-Studio ,
64- , .
, -
, ,
. .
,
, , .
, ,
, ,
, ,
. ,
. ? , ,
.
1.m , . . - . : , 2006. - 526 . :
. - ISBN 5-469-00982-3.
2.m , , -, . :
.: . . - .: "", 2005. - 400 . : . . . . ISBN 5-8459-0785-3. 32.973.26-018.2.75.
3.m , . 20 ++ - 64-
. http://www.viva64.com/art-1-1-1958348565.html
4.m . 64- . http://www.viva64.com/art-1-11757483679.html
5.m . PVS-Studio. http://www.viva64.com/art-4-11796251700.html