Sizeof具有不同的规范

问题描述 投票:0回答:1

我想知道为什么sizeof不能与不同类型的格式说明符一起使用。

[我知道sizeof通常与%zu格式说明符一起使用,但是我想以我自己的知识知道当我将nan或长整数与它一起使用时,后面会发生什么以及为什么打印%f%lf一起使用时>

int a = 0;
long long d = 1000000000000;
int s = a + d;
printf("%d\n", sizeof(a + d));  // prints normal size of expression
printf("%lf\n", sizeof(s));     // prints big number
printf("%f", sizeof(d));        // prints nan

我想知道为什么sizeof在不同类型的格式说明符中不起作用。我知道sizeof通常与%zu格式说明符一起使用,但是我想以我自己的知识知道什么...

c types sizeof
1个回答
0
投票

sizeof计算得出的值为size_t类型的值。 size_t的正确说明符是%zu。您可以在%usize_t是相同类型或至少具有相同大小和表示形式的系统上使用unsigned int。在64位系统上,size_t值具有64位,因此大于32位int。在64位linux和OS / X上,此类型定义为unsigned long,在64位Windows上,此类型定义为unsigned long long,因此在这些系统上使用%lu%llu也可以。

© www.soinside.com 2019 - 2024. All rights reserved.