c数据类型大小

时间:2010-07-12 02:28:22

标签: c types size

我如何知道计算机中所有数据类型的大小?

4 个答案:

答案 0 :(得分:8)

以下程序应该为原始类型提供技巧:

#include <stdio.h>
int main()
{
    printf("sizeof(char) = %d\n", sizeof(char));
    printf("sizeof(short) = %d\n", sizeof(short));
    printf("sizeof(int) = %d\n", sizeof(int));
    printf("sizeof(long) = %d\n", sizeof(long));
    printf("sizeof(long long) = %d\n", sizeof(long long));
    printf("sizeof(float) = %d\n", sizeof(float));
    printf("sizeof(double) = %d\n", sizeof(double));
    printf("sizeof(long double) = %d\n", sizeof(long double));
    return 0;
}

根据定义,打印出类型使用的“字节数”,sizeof(char) == 1。 1意味着什么(即多少位)是特定于实现的,并且可能取决于底层硬件。例如,有些机器有7位字节,有些机器有10或12位字节。

答案 1 :(得分:6)

您可以将sizeof应用于您需要知道其大小的每种类型,然后您可以打印结果。

答案 2 :(得分:2)

sizeof(T)将为您提供传递给它的任何类型的大小。如果您试图找出在特定程序中使用或定义的所有数据类型的大小,您将无法 - C在编译时不保持该级别的信息。

答案 3 :(得分:0)

使用sizeof获取变量类型的大小(以字节为单位) 例如:
#include <stdint.h>
sizeof(int32_t)将返回4
sizeof(char)将返回1
int64_t a;
sizeof a;将返回8

请参阅http://publications.gbdirect.co.uk/c_book/chapter5/sizeof_and_malloc.html