我如何知道计算机中所有数据类型的大小?
答案 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