sample 1
char i = 1;
int64_t chunknum;
printf ("%zd\n", chunknum);
print_size_t(chunknum);
sample 2
//char i = 1;
int64_t chunknum;
printf ("%zd\n", chunknum);
print_size_t(chunknum);
其中print_size_t 函数功能是按位打印。
在sample 1中结果是
140735130976432
00001101000000101011111011001110 11111111111111100000000000000000
(从左到又是低位到高位)
sample 2的结果是
4195600
00001000101000000000001000000000 00000000000000000000000000000000
经过无数次的尝试。我发现声明并定义char i = 1 会让chunknum的高32位全为0。
这是什么原因呢?求大神解释