размер типа данных c - PullRequest
6 голосов
/ 12 июля 2010

Как узнать размер всех типов данных на моем компьютере?

Ответы [ 4 ]

8 голосов
/ 12 июля 2010

Следующая программа должна выполнить трюк для примитивных типов:

#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-битные байты.

6 голосов
/ 12 июля 2010

Вы можете применить sizeof к каждому типу, размер которого вам нужно знать, а затем вы можете распечатать результат.

2 голосов
/ 12 июля 2010

sizeof(T) даст вам размер любого переданного ему типа.Если вы пытаетесь выяснить размер всех типов данных, используемых или определенных в конкретной программе, вы не сможете - C не поддерживает этот уровень информации при компиляции.

0 голосов
/ 12 июля 2010

Используйте 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

...