Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C_lect.doc
Скачиваний:
30
Добавлен:
12.11.2018
Размер:
856.06 Кб
Скачать

2.2. Базовые типы данных

В Си стандарта ANSI классификация типов имеет следующий вид, также указана размерность переменной типа в оперативной памяти:

  • целые:

    • беззнаковые :

      • unsigned char – переменная типа занимает в памяти 8 бит;

      • unsigned short – 16 бит;

      • unsigned int - 32 бита (в Win32);

      • unsigned long – 32 бита (в Win32);

    • знаковые:

      • char – 8 бит;

      • short – 16 бит;

      • int - 32 бита (в Win32);

      • long – 32 бита (в Win32);

  • вещественные:

      • float – 32 бита;

      • double – 64 бита;

      • long double – 80 бит.

Назначение и диапазоны стандартных типов представлено в таблице 1.

Таблица 1 – Назначение и диапазоны стандартных типов

Тип данных

Размер, бит

Диапазон значений

Примечание -назначение типа

unsigned char

8

0...255

Небольшие целые числа без знака и коды символов

char

8

-128...127

Небольшие целые числа со знаком и ASCII-коды

unsigned short

16

0...65535

Целые числа без знака

short

16

-32768...32767

Целые числа со знаком

unsigned int

32

0...4294967295

Большие целые без знака

int

32

-2147483648... ...2147483647

Большие целые со знаком

unsigned long

32

0...4294967295

Большие целые без знака

long

32

-2147483648... ...2147483647

Большие целые со знаком

float

32

3.4Е-38…...

3.4Е+38

Научные расчеты (7 значащих цифр)

double

64

1.7Е-308...

…..1.7Е+308

Научные расчеты (15 значащих цифр)

long double

80

3.4Е-4932... ...1.1Е+4932

Финансовые расчеты (19 значащих цифр)

Следует отметить особенность типа char (unsigned char) в языке Си. Язык Си язык со слабой типизацией, поэтому символьный тип используется двояко. С одной стороны он может использоваться для хранения кодов символов в кодировке ASCII, а с другой стороны, для хранения целых чисел в заданном диапазоне.

Кроме данных типов в Си существует перечисляемый тип, который задается следующим образом:

enum <имя_типа> {

<имя1>[=<инициализатор1>],

<имя2>[=<инициализатор2>],

……………….

<имяN>[=<инициализаторN>] };

<имя1>, <имя2>, …, <имяN> -выступают далее в качестве констант, по умолчанию первая константа инициализируется 0, каждая последующая на 1 больше. Переменные заданного типа могут принимать значения только из множества констант. Этот тип отдельно в качестве базовых можно не рассматривать, так как он в своем внутреннем представлении в оперативной памяти аналогичен типу int. Данный тип удобно использовать для ассоциации некоторых констант с символьными именами.

Пример:

enum A {

a, //=0

b, //=1

c=5,//=5

d }; //=6

A x;

x=b; // Переменной x можно присваивать значения констант a, b, c или d

Дополнительно компанией Microsoft введены, так называемые, платформенно- независимые целые типы, по сути это новые имена для уже существующих типов, но их размерность не будет меняться при переходе к другим платформам (размерность этих типов в битах явным образом присутствует в названии):

__int8 unsigned __int8

__int16 unsigned __int16

__int32 unsigned __int32

__int64 unsigned __int64

Кроме того в последние версии продуктов Microsoft дополнительно введены следующие типы, имена которых являются ключевыми словами:

bool – 1 байт, возможные значения true (1) и false (0);

wchar_t – 2 байта (соответствует типу short), обычно используется для хранения кодов символов в кодировке Unicode (1 символ кодируется 2 байтами).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]