gpt4 book ai didi

C 编程 - 2U 和 1024U 大小

转载 作者:行者123 更新时间:2023-11-30 18:45:15 29 4
gpt4 key购买 nike

我知道 U 文字在 c 中意味着该值是无符号整数。无符号整数大小为 4 个字节。

但是 2U 或 1024U 有多大?例如,这是否仅仅意味着 2 * 4 字节 = 8 字节,或者这个表示法是否意味着 2(或 1024)是无符号整数?

我的目标是计算出如果我像这样调用 malloc 将分配多少内存

int *allocated_mem = malloc(2U * 1024U);

并在一个简短的程序中证明我的答案我尝试过这样的

printf("Size of 2U: %ld\n", sizeof(2U));
printf("Size of 1024U: %ld\n", sizeof(1024U));

我预计第一行的大小为 2 * 4 字节 = 8,第二行的大小为 1024 * 4 字节 = 4096,但输出始终为“4”。

真的很了解 2U 和 1024U 的确切含义以及如何在 C 语言中检查它们的大小?

最佳答案

My goal would be to figured out how much memory will be allocated if i call malloc like this int *allocated_mem = malloc(2U * 1024U);

2 * 1024 == 2048 有什么困难?它们是无符号文字这一事实并不会改变它们的值。

<小时/>

An unsigned intagers size is 4 bytes. (sic)

你是对的。因此,2U 占用 4 个字节,1024U 占用 4 个字节,因为它们都是无符号整数。

<小时/>

I would have expeted for the first line a size of 2 * 4 Bytes = 8 and for the second like 1024 * 4 Bytes = 4096 but the output is always "4".

为什么值会改变大小?大小取决于类型。 2Uunsigned int类型,所以占用4个字节;与50U相同,与1024U相同。它们都占用 4 字节

您正在尝试将值 (2) 乘以类型的大小。这没有任何意义。

关于C 编程 - 2U 和 1024U 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300234/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com