开发者

sizeof((int)(float)(char)i)) when int is defined (int)(float)(char) i;

#include<stdio.h>
double i;

int main()
{
    (int)(float)(char)开发者_开发技巧 i;
    printf("%d", sizeof((int)(float)(char)i));
    return 0;
}

The above outputs 4 on a Micrsoft compiler. Why?


sizeof is the size, in bytes, of the variable. In this case, i is being cast to an int which is 4 bytes.

These are the sizes of types on MS C++: http://msdn.microsoft.com/en-us/library/cc953fe1(v=vs.71).aspx


The last cast operation is to int, so u will get the sizeOf(int). Integer size differes form compiler to another, some return 2-bytes and onther return 4-bytes.


sizeof something tells you how many bytes it takes up in memory. Your platform and toolchain clearly has 32-bit integers; it's telling you that int, on your toolchain (compiler), takes up 4 bytes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜