shiguofu2012 2013-09-18 07:48
浏览 806

关于变量初始化的问题

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。
这是什么原因呢?求大神解释

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
    • ¥15 C#调用python代码(python带有库)
    • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
    • ¥15 活动选择题。最多可以参加几个项目?
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?
    • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
    • ¥20 怎么在stm32门禁成品上增加查询记录功能
    • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面