角色的大小是多少?

时间:2014-02-07 13:49:22

标签: c

我正在阅读一本C编程书,我刚刚通过了一段陈述以下内容的段落:“字符常量,如'F',是整数,而不是字符,这解释了为什么sizeof'F'等于sizeof (INT)。”

但我不相信这一点,所以我决定测试自己和结果:

printf("%ld", sizeof('F')); //output 4;

但如果我们这样做:

char a = 'F';
printf("%ld", sizeof(a)); //output 1;

所以我的问题是,引擎盖下发生了什么?为什么'F'被编译器作为int处理,而它可以帮助作为char处理,占用更少的内存?

我有一个猜测,因为'F'是一个常量并且通常存储在一个寄存器中,处理它有一个char | int或long是无关紧要的...有人可以确认我的假设或解释我为什么这样做会发生什么?

0 个答案:

没有答案