Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

C — Типы данных

Типы данных в c относятся к обширной системе, используемой для объявления переменных или функций различных типов. Тип переменной определяет, сколько места она занимает в памяти и как интерпретируется сохраненная битовая комбинация.

Типы в C можно классифицировать следующим образом —

<тд>

Основные типы

Они являются арифметическими типами и далее подразделяются на:(а) целые типы и (б) типы с плавающей запятой.

<тд>

Пронумерованные типы

Это снова арифметические типы, и они используются для определения переменных, которые могут присваивать только определенные дискретные целочисленные значения во всей программе.

<тд>

Тип void

Спецификатор типа void указывает, что значение недоступно.

<тд>

Производные типы

К ним относятся (а) типы указателей, (б) типы массивов, (в) типы структур, (г) типы объединений и (д) типы функций.

Серийный номер Типы и описание
1
2
3
4

Типы массивов и типы структур вместе называются агрегатными типами. Тип функции определяет тип возвращаемого функцией значения. Мы рассмотрим основные типы в следующем разделе, а другие типы будут рассмотрены в следующих главах.

Целые типы

В следующей таблице приведены подробные сведения о стандартных целочисленных типах с размерами их хранилищ и диапазонами значений —

Тип Размер хранилища Диапазон значений
знак 1 байт от -128 до 127 или от 0 до 255
беззнаковый символ 1 байт от 0 до 255
знак со знаком 1 байт -128 до 127
int 2 или 4 байта от -32 768 до 32 767 или от -2 147 483 648 до 2 147 483 647
беззнаковое целое 2 или 4 байта от 0 до 65 535 или от 0 до 4 294 967 295
короткий 2 байта -32 768 до 32 767
короткий без знака 2 байта от 0 до 65 535
длинный 8 байт или (4 байта для 32-битной ОС) -9223372036854775808 до 9223372036854775807
беззнаковое длинное 8 байт от 0 до 18446744073709551615

Чтобы получить точный размер типа или переменной на определенной платформе, вы можете использовать sizeof оператор. Выражения sizeof(type) дает размер хранения объекта или типа в байтах. Ниже приведен пример получения размера различных типов на машине с использованием другой константы, определенной в заголовочном файле limit.h —

Живая демонстрация
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    return 0;
}

Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат в Linux —

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535

Типы с плавающей запятой

В следующей таблице приведены подробные сведения о стандартных типах с плавающей запятой с размерами хранилища и диапазонами значений, а также их точностью —

Тип Размер хранилища Диапазон значений Точность
плавающий 4 байта от 1.2E-38 до 3.4E+38 6 знаков после запятой
двойной 8 байт от 2.3E-308 до 1.7E+308 15 знаков после запятой
длинный двойной 10 байт от 3.4E-4932 до 1.1E+4932 19 знаков после запятой

Заголовочный файл float.h определяет макросы, которые позволяют вам использовать эти значения и другие сведения о двоичном представлении действительных чисел в ваших программах. В следующем примере выводится место для хранения, занятое типом с плавающей запятой, и его значения диапазона —

Живая демонстрация
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("Storage size for float : %d \n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат в Linux —

Storage size for float : 4 
FLT_MAX      :   3.40282e+38
FLT_MIN      :   1.17549e-38
-FLT_MAX     :   -3.40282e+38
-FLT_MIN     :   -1.17549e-38
DBL_MAX      :   1.79769e+308
DBL_MIN      :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6

Тип void

Тип void указывает, что значение недоступно. Он используется в трех случаях —

<тд>

Функция возвращает значение void

В C есть различные функции, которые не возвращают никакого значения или, можно сказать, возвращают void. Функция без возвращаемого значения имеет возвращаемый тип void. Например, void exit (int status);

<тд>

Аргументы функции недействительны

В C есть различные функции, которые не принимают никаких параметров. Функция без параметра может принимать пустое значение. Например, int rand(void);

<тд>

Указатели на void

Указатель типа void * представляет адрес объекта, но не его тип. Например, функция выделения памяти void *malloc( size_t size ); возвращает указатель на void, который можно привести к любому типу данных.

Серийный номер Типы и описание
1
2
3

Язык C

  1. Типы переключения
  2. Переменные C# и (примитивные) типы данных
  3. Типы данных С++
  4. C Типы данных
  5. Типы данных Python
  6. Типы данных Java (примитивные)
  7. C Переменная, типы данных, константы
  8. 5 различных типов центров обработки данных [с примерами]
  9. 8 различных типов облачных вычислений в 2021 году
  10. 8 различных типов утечек данных с примерами