Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

C - Tipos de dados


Os tipos de dados em c referem-se a um sistema extensivo usado para declarar variáveis ​​ou funções de diferentes tipos. O tipo de uma variável determina quanto espaço ela ocupa no armazenamento e como o padrão de bits armazenado é interpretado.

Os tipos em C podem ser classificados da seguinte forma -
Nº Sr. Tipos e descrição
1
Tipos básicos

Eles são tipos aritméticos e são classificados em:(a) tipos inteiros e (b) tipos de ponto flutuante.
2
Tipos enumerados

Eles são novamente tipos aritméticos e são usados ​​para definir variáveis ​​que só podem atribuir certos valores inteiros discretos ao longo do programa.
3
O tipo void

O especificador de tipo void indica que nenhum valor está disponível.
4
Tipos derivados

Eles incluem (a) Tipos de ponteiro, (b) Tipos de matriz, (c) Tipos de estrutura, (d) Tipos de união e (e) Tipos de função.

Os tipos de matriz e tipos de estrutura são referidos coletivamente como tipos agregados. O tipo de uma função especifica o tipo do valor de retorno da função. Veremos os tipos básicos na seção a seguir, enquanto outros tipos serão abordados nos próximos capítulos.

Tipos inteiros


A tabela a seguir fornece os detalhes dos tipos inteiros padrão com seus tamanhos de armazenamento e intervalos de valores -
Tipo Tamanho do armazenamento Intervalo de valores
caractere 1 byte -128 a 127 ou 0 a 255
caractere não assinado 1 byte 0 a 255
caractere assinado 1 byte -128 a 127
int 2 ou 4 bytes -32.768 a 32.767 ou -2.147.483.648 a 2.147.483.647
int não assinado 2 ou 4 bytes 0 a 65.535 ou 0 a 4.294.967.295
curta 2 bytes -32.768 a 32.767
short não assinado 2 bytes 0 a 65.535
longo 8 bytes ou (4 bytes para SO de 32 bits) -9223372036854775808 para 9223372036854775807
não assinado longo 8 bytes 0 a 18446744073709551615

Para obter o tamanho exato de um tipo ou variável em uma plataforma específica, você pode usar o sizeof operador. As expressões sizeof(type) produz o tamanho de armazenamento do objeto ou tipo em bytes. Dado abaixo é um exemplo para obter o tamanho de vários tipos em uma máquina usando diferentes constantes definidas no arquivo de cabeçalho limites.h −
Demonstração ao vivo
#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;
}

Quando você compila e executa o programa acima, ele produz o seguinte resultado no 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

Tipos de ponto flutuante


A tabela a seguir fornece os detalhes dos tipos de ponto flutuante padrão com tamanhos de armazenamento e intervalos de valores e sua precisão -
Tipo Tamanho do armazenamento Intervalo de valores Precisão
flutuar 4 bytes 1,2E-38 a 3,4E+38 6 casas decimais
duplo 8 bytes 2,3E-308 a 1,7E+308 15 casas decimais
dupla longa 10 bytes 3.4E-4932 a 1.1E+4932 19 casas decimais

O arquivo de cabeçalho float.h define macros que permitem usar esses valores e outros detalhes sobre a representação binária de números reais em seus programas. O exemplo a seguir imprime o espaço de armazenamento ocupado por um tipo float e seus valores de intervalo -
Demonstração ao vivo
#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;
}

Quando você compila e executa o programa acima, ele produz o seguinte resultado no 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

O tipo void


O tipo void especifica que nenhum valor está disponível. É usado em três tipos de situações -
Nº Sr. Tipos e descrição
1
Função retorna como nula

Existem várias funções em C que não retornam nenhum valor ou você pode dizer que elas retornam void. Uma função sem valor de retorno tem o tipo de retorno como void. Por exemplo, void exit (int status);
2
Argumentos de função como nulos

Existem várias funções em C que não aceitam nenhum parâmetro. Uma função sem parâmetro pode aceitar um void. Por exemplo, int rand(void);
3
Ponteiros para anular

Um ponteiro do tipo void * representa o endereço de um objeto, mas não seu tipo. Por exemplo, uma função de alocação de memória void *malloc( size_t size); retorna um ponteiro para void que pode ser convertido em qualquer tipo de dados.

Linguagem C

  1. Tipos de troca
  2. Variáveis ​​C# e tipos de dados (primitivos)
  3. Tipos de dados C++
  4. Tipos de dados C
  5. Tipos de dados Python
  6. Tipos de dados Java (Primitivo)
  7. Variável C, Tipos de Dados, Constantes
  8. 5 tipos diferentes de data center [com exemplos]
  9. 8 tipos diferentes de computação em nuvem em 2021
  10. 8 tipos diferentes de violação de dados com exemplos